• 微信仿今日头条导航栏滚动


    项目需要,做一个和今日头条一样的导航栏,可以横行滚动,幸好再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,导致滑动敏感触发
    });
  • 相关阅读:
    MVC与MVVM
    js正则删除字符串中的部分内容(支持变量和特殊符号)
    小程序之rpx适配方案
    表单元素内容禁用拼写检查
    vue组件实例的生命周期
    Windows下生成目录结构树命令
    DRF之解析器源码解析
    restful规范快速记忆
    python报错之OSError
    xlrd、xlwt
  • 原文地址:https://www.cnblogs.com/dehuachenyunfei/p/wechat_nav_iscroll.html
Copyright © 2020-2023  润新知