微信仿今日頭條導航欄滾動


項目需要,做一個和今日頭條一樣的導航欄,可以橫行滾動,幸好再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:;" :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,導致滑動敏感觸發
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM