zoukankan      html  css  js  c++  java
  • 微信仿今日头条导航栏滚动

    项目需要,做一个和今日头条一样的导航栏,可以横行滚动,幸好再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,导致滑动敏感触发
    });
  • 相关阅读:
    委托(2).net 1.x中的委托
    委托(1)认识委托
    克隆对象的几种方法
    常用的去重和排序
    为更好地设计数据库,重新整理sql server数据类型
    对于数据库中表示状态或类型字段表示方法的思考
    string to byte[]
    json序列化时datetime的处理方法
    dll版本冲突的解决方法
    .net中的序列化
  • 原文地址:https://www.cnblogs.com/dehuachenyunfei/p/wechat_nav_iscroll.html
Copyright © 2011-2022 走看看