原平的旅游网站怎么做的,深圳大眼睛网站建设,雷山网站快速排名,企业所得税什么时候交无论小程序的时候一般有这个功能,在页面处于首页时候,滑动视图,切换视图顶部滚动导航也跟着切换 1.想要实现这个功能就需要实现顶部导航栏,首先实现顶部滚导航栏 点击高亮颜色显示 模板代码
scroll-view scroll-xtrue classscroll-content
…无论小程序的时候一般有这个功能,在页面处于首页时候,滑动视图,切换视图顶部滚动导航也跟着切换 1.想要实现这个功能就需要实现顶部导航栏,首先实现顶部滚导航栏 点击高亮颜色显示 模板代码
scroll-view scroll-xtrue classscroll-content
//滑动导航栏数组view v-for(item,index) in topBar :keyindex classscroll-item text :classindextopindex?f-color-active:f-color clickaddclick(index) {{item.name}}/text/view
/scroll-view采用的是class样式绑定 ,写一份高亮样式,和普通样式,定义一个滑动默认高亮索引当,高亮索引等于当前的v-for点击的索引时候,高亮,
var topindex ref(0);//默认第一个区域高亮索引//高亮方法var addclick(index){console.log(用户点击了第几个tabbar,index);// 索引改变用来判断当前样式是为否点击样式 这样就是topindex.valueindex;};css
/* 字体颜色 */
.f-color{color: #636263;
}/* 选中字体颜色 */
.f-color-active{color: #2979ff;
}2.然后接下来实现滑动导航栏点击的时候内容区域的页面跟着切换,大概逻辑是一样的既然上面,通过高亮索引等于当前v-for循环的内容视图索引显示即可,但是要实现页面滑动,顶部导航栏也跟着滑动,所以下面的内容区域不能用view 而是使用swipier轮播器
滑动视图实现滑动效果(当然是关闭了自动切换那些属性的)
swpiper的current属性决定了当前滑动显示的视图区域 所以代码块就可以同v-for滚动导航的数据列表,来实现滚动导航栏在那个索引,内容显示那个索引 ,内容区域使用的是scrollview滚动视图,方便后期数据扩展来动态设置内容区域高度
!-- swiper顶部的容器,让他可以随着选项卡切换而且切换 改变时候触发切换事件 current属性和数据的index刚好对应--swiper :currenttopindex !-- 要跟着tab循环 所以数据也跟着循环 --swiper-item v-for(item,index) in topBar :keyindex !-- 做滑底部刷新 scrolltolower --scroll-view :scroll-ytrue classswiper-item --内容区域--/scroll-view /swiper-item/swiper现在实现了滚动导航栏切换,内容区域切换,但是还没有实现内容区域滑动,上面的滚动条跟着变化所以,为swipper添加滑动事件, !-- viewindex是下方的视图id 滑动内容可以实现导航样式跟着改变到但是无法实现滑动导航区域滑动 --scroll-view scroll-xtrue classscroll-content :scroll-into-viewviewindex view v-for(item,index) in topBar :keyindex classscroll-item :idtopindextext :classindextopindex?f-color-active:f-color clickaddclick(index) {{item.name}}/text/view/scroll-view
!-- swiper顶部的容器,让他可以随着选项卡切换而且切换 改变时候触发切换事件 current属性和数据的index刚好对应--swiper changeonChangeTab :currenttopindex :styleheight:viewHeightpx;!-- 要跟着tab循环 所以数据也跟着循环 --swiper-item v-for(item,index) in topBar :keyindex !-- 做滑底部刷新 scrolltolower --scroll-view :scroll-ytrue :styleheight:viewHeightpx; classswiper-item /scroll-view /swiper-item/swiper修改后的js var viewindex ref(0)//高亮方法var addclick(index){console.log(用户点击了第几个tabbar,index);// 索引改变用来判断当前样式是为否点击样式topindex.valueindex;console.log(topindex),// 视图跟顺点击改变viewindextopindex;};var onChangeTab(e){// 从wipper 滑动视图的detail拿到索引console.log(用户开始滑动页面,e.detail);// 把滑块索引传递实现滑动改变top 索引 用户滑动那个区域对应顶部导航也跟着滑动addclick(e.detail.current);};滑动事件可以获取到当前元素参数,detail属性中可以知道当前滑动到第几个索引了,因为和滚动导航栏一样是循环的同样导航栏数据,所以索引位置能够皮蓬 这里我为滚动视图添加了:scroll-into-viewviewindex属性,是因为当内容区域一直滑动,滚动导航栏可以会出现内容高亮的部分在显示可视外边,所以就要用该属性设置内容区域的索引在哪,滚动导航的视图在哪,不然就出现高亮,但是高亮部分在滚动导航栏末尾 注意哦,这个属性定位视图范围是根据id来的,但是不能以数字开头,所以我的滚动导航栏的子视图id和js方法是做了拼接的
scroll-view对应的子视图
view v-for(item,index) in topBar :keyindex classscroll-item :idtopindex和高亮方法做的拼接 viewindextopindex;这样就实现了内容区域滑动,滚动导航栏滑动,但是还有个问题,当我 内容区域下滑到底刷新数据时(data[…data,…apirespose.dataArrary]), 高度固定的到导致内容限制不完 善,所以要设置动态高度 所以内容区域的高度是动态变量
swiper changeonChangeTab :currenttopindex :styleheight:viewHeightpx;!-- 要跟着tab循环 所以数据也跟着循环 --swiper-item v-for(item,index) in topBar :keyindex !-- 做滑底部刷新 scrolltolower --scroll-view :scroll-ytrue :styleheight:viewHeightpx; classswiper-item 这里的viewHeight就是设置的变量,初始化为0,没有数据,等页面加载的时候根据手机设备高度来动态计算
var viewHeightref(0)uniapp api获取设备信息 成功的回调函数中包含可使用高度
注意获取使用设备的可视化高度的时候要使用同步api 避免页面初始化,异步操作还没执行,应该先计算高度在初始化数据 计算可使用高度 //获取刘海以及状态栏区域const getDeviceHeight () {const res uni.getSystemInfoSync();const system res.platform;if( system ios ){return 44res.statusBarHeight;}else if( systemandroid ){return 48res.statusBarHeight;}else{return 0;}};页面初始化时候开始计算高度:内容区域高度可使用高度-滚动导航栏高度(rpx转px)-刘海/挖孔和状态栏高度 onLoad((){console.log(程序开始加载,初始化);init();});//减去80
onReady((){uni.getSystemInfo({success: (res) {viewHeight.value res.windowHeight - uni.upx2px(80)-getDeviceHeight();}})
})这样就实现了所有内容,以下是完整代码,内容区域使用的是整合的组件,采用v-if判断是否应该在高亮时候显示
templateview classhome!-- #ifdef MP-WEIXIN --!-- 自定意的导航 --view classwx-navview classiconfont icon-fangdajing left/viewtext uni-title小 猴 体 育/textview classiconfont icon-shouye right/view/view!-- 顶部滑动选项卡 --!-- viewindex是下方的视图id 滑动内容可以实现导航样式跟着改变到但是无法实现滑动导航区域滑动 --scroll-view scroll-xtrue classscroll-content :scroll-into-viewviewindex view v-for(item,index) in topBar :keyindex classscroll-item :idtopindextext :classindextopindex?f-color-active:f-color clickaddclick(index) {{item.name}}/text/view/scroll-view!-- 导航过后是切换的栏 swper 考虑多方面使用封装为组件 --view classwx-content!-- swiper顶部的容器,让他可以随着选项卡切换而且切换 改变时候触发切换事件 current属性和数据的index刚好对应--swiper changeonChangeTab :currenttopindex :styleheight:viewHeightpx;!-- 要跟着tab循环 所以数据也跟着循环 --swiper-item v-for(item,index) in topBar :keyindex !-- 做滑底部刷新 scrolltolower --scroll-view :scroll-ytrue :styleheight:viewHeightpx; classswiper-item block!--推荐模块 轮框画图 urls 传递图片数组改变 --indexSwipper greetingHola messagecustomMessage v-ifitem.name推荐 /indexSwipperShopCard title猜你喜欢 v-ifitem.name推荐 /ShopCardRecommend v-ifitem.name推荐 /RecommendCardList v-ifitem.name推荐 /CardListCardList v-ifitem.name推荐 /CardListCardList v-ifitem.name推荐 /CardListCardList v-ifitem.name推荐 /CardList!--推荐模块 轮框画图 urls 传递图片数组改变 --ShopCard v-ifitem.name运动户外 title体育户外/ShopCardindex-banner url../../static/img/banner1.jpg v-ifitem.name运动户外/index-banner index-icons v-ifitem.name运动户外/index-icons!-- 就是一个3X4的图片集合 --!-- 传递imagelist的图片数组动态改变 这里写死--index-imagelist v-ifitem.name运动户外/index-imagelistShopCard title热销爆品 v-ifitem.name运动户外/ShopCardindex-hot v-ifitem.name运动户外/index-hotShopCard title推荐店铺 v-ifitem.name运动户外/ShopCard!--推荐模块 轮框画图 urls 传递图片数组改变 --!-- index-banner url../../static/img/banner1.jpg/index-banner --index-icons v-ifitem.name服饰内衣/index-icons ShopCard title推荐店铺 v-ifitem.name服饰内衣/ShopCardindex-Shopper v-ifitem.name服饰内衣/index-Shopper/block/scroll-view /swiper-item/swiper/view/view
/templatescript setupimport ShopCard from /components/ShopCard/ShopCard.vue;
import Recommend from /components/Recommend/Recommend.vue;
import CardList from /components/CardList/CardList.vue;import {onLoad,onReady,onShow} from dcloudio/uni-app;import { reactive, ref,onMounted } from vuevar onChangeTab(e){// 从wipper 滑动视图的detail拿到索引console.log(用户开始滑动页面,e.detail);// 把滑块索引传递实现滑动改变top 索引 用户滑动那个区域对应顶部导航也跟着滑动addclick(e.detail.current);};//注意这里要弄成响应式 不然只会渲染一次 :scroll-into-view这个属性控制视图在几个var topindexref(0);// 滑动导航的索引,var viewindexref(top0)// swipper容器的默认高度var viewHeight ref(0);//获取刘海以及状态栏区域的剩余空间var addclick(index){console.log(用户点击了第几个tabbar,index);// 索引改变用来判断当前样式是为否点击样式topindex.valueindex;console.log(topindex),// 视图跟顺点击改变viewindextopindex;};var topBarref([]);var urlsref([]);//获取刘海以及状态栏区域的空余显示区域const getDeviceHeight () {const res uni.getSystemInfoSync();const system res.platform;if( system ios ){return 44res.statusBarHeight;}else if( systemandroid ){return 48res.statusBarHeight;}else{return 0;}};var init(){uni.request({url:http://192.168.10.98:3000/api/index_list/data,success: (res) {console.log(发送请求成功,这是返回值,res);var resdatares.data.data;//响应体里面的数据 res.data是相应体一个code 还有个是dataconsole.log(得到的滑动标题栏的值,resdata.topBar)topBar.valueresdata.topBarconsole.log(得到各个模块的数据,resdata.data)},fail: (e) {console.log(e)}})
};onLoad((){console.log(程序开始加载,初始化);init();});
onReady((){uni.getSystemInfo({success: (res) {viewHeight.value res.windowHeight - uni.upx2px(80)-getDeviceHeight();}})
})/scriptstyle scoped langscss
.home{.wx-nav{.iconfont{// iconfont字体进行更改大小font-size: 26px; }border-bottom: solid 1rpx #707070;background-color:#FFFFFF ;.left{margin-left: 30rpx;}.right{margin-right: 30rpx;}padding-bottom: 10rpx;margin-top: 80rpx;// 没写具体的高 差不多和底部导航栏一样·高合适height: 50rpx;width: 100%;display: flex;justify-content: space-between;text-align: center;}// 滑块.scroll-content{width: 100%;height: 90rpx;// 空白空间不换行white-space: nowrap;.scroll-item{padding: 10rpx 30rpx;display: inline-block;font-size: 32rpx;.f-color-active{padding: 15rpx 0;border-bottom: 6rpx solid #2979ff;}}}
}/style
文章转载自: http://www.morning.jncxr.cn.gov.cn.jncxr.cn http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn http://www.morning.jmllh.cn.gov.cn.jmllh.cn http://www.morning.thbnt.cn.gov.cn.thbnt.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.dmjhp.cn.gov.cn.dmjhp.cn http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn http://www.morning.lflnb.cn.gov.cn.lflnb.cn http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn http://www.morning.wyzby.cn.gov.cn.wyzby.cn http://www.morning.ybnps.cn.gov.cn.ybnps.cn http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.ybshj.cn.gov.cn.ybshj.cn http://www.morning.krywy.cn.gov.cn.krywy.cn http://www.morning.plydc.cn.gov.cn.plydc.cn http://www.morning.qwfl.cn.gov.cn.qwfl.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn http://www.morning.baohum.com.gov.cn.baohum.com http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn http://www.morning.fwllb.cn.gov.cn.fwllb.cn http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn http://www.morning.wnjwb.cn.gov.cn.wnjwb.cn http://www.morning.zwckz.cn.gov.cn.zwckz.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.xxknq.cn.gov.cn.xxknq.cn http://www.morning.srnth.cn.gov.cn.srnth.cn http://www.morning.qqnp.cn.gov.cn.qqnp.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.rcwbc.cn.gov.cn.rcwbc.cn http://www.morning.jmbfx.cn.gov.cn.jmbfx.cn http://www.morning.zztkt.cn.gov.cn.zztkt.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn http://www.morning.qklff.cn.gov.cn.qklff.cn http://www.morning.yxdrf.cn.gov.cn.yxdrf.cn http://www.morning.fykqh.cn.gov.cn.fykqh.cn http://www.morning.rykx.cn.gov.cn.rykx.cn http://www.morning.srgbr.cn.gov.cn.srgbr.cn http://www.morning.mmosan.com.gov.cn.mmosan.com http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn http://www.morning.bsgfl.cn.gov.cn.bsgfl.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.zknxh.cn.gov.cn.zknxh.cn http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn http://www.morning.mttck.cn.gov.cn.mttck.cn http://www.morning.c7501.cn.gov.cn.c7501.cn http://www.morning.lcjw.cn.gov.cn.lcjw.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.hwlk.cn.gov.cn.hwlk.cn http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.ldgqh.cn.gov.cn.ldgqh.cn http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn http://www.morning.tnfyj.cn.gov.cn.tnfyj.cn http://www.morning.flqbg.cn.gov.cn.flqbg.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.mnlk.cn.gov.cn.mnlk.cn http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn http://www.morning.mghgl.cn.gov.cn.mghgl.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn