項目需要,做一個和今日頭條一樣的導航欄,可以橫行滾動,幸好再weui里面看到了類似的例子
地址:https://weui.shanliwawa.top/demo/js4.html,使用iscroll-lite.j實現,weui自己封裝了一層,vue中實現代碼:
<div id="tab-tip" class="container"> <div id="tagnav" class="weui-navigator weui-navigator-wrapper" style="touch-action: none;padding-left:5px"> <ul class="weui-navigator-list first_nav"> <li class v-for="group in groupList"> <a href="javascript:;" rel="external nofollow" :groupId="group.id" @click="loadData(group.id)">{{group.name}}</a> </li> </ul> </div> </div> 初始化: mounted() { setTimeout(function() { TagNav("#tagnav", { type: "scrollToNext", curClassName: "weui-state-active", index: 0 }); $(".first_nav") .children(":first") .find("a") .addClass("first_border_circle"); $(".first_nav") .children(":last") .find("a") .addClass("end_border_circle"); }, 0); },
注意:引入weui的css,class="container"這個一定要有,不然出現定位出現問題。
setimeout等元素渲染完成再初始化。
當然做這個項目的時候出現了一個問題,安卓手機第一次進入頁面,非導航欄滑動的時候敏感,導致本來是滑動,觸發了click事件,導致跳轉
通過查找了許多資料,因為iscroll-lite默認事件touchend等綁定再window上,不是綁定再我們滾動的元素(上面例子:id="tagnav"的div),導致
點擊其他的區域觸發了click事件,幸好看到它有配置項:bindToWrapper,把這個值設定為true解決
因為weui重新封裝了,所以找到,添加:bindToWrapper: true即可解決
self.iScroll = new IScroll(self.el, { scrollX: true, scrollY: false, click: true, bindToWrapper: true//防止touchend等事件綁定到window,導致滑動敏感觸發 });
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com