微信小程序仿今日頭條導航欄滾動解析

這篇文章主要介紹了微信小程序仿今日頭條導航欄滾動解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章