微信小程序仿今日头条导航栏滚动解析

 更新时间:2019年08月20日 17:01:38   作者:IT-HourseMan  
这篇文章主要介绍了微信小程序仿今日头条导航栏滚动解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

项目需要,做一个和今日头条一样的导航栏,可以横行滚动,幸好再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,导致滑动敏感触发
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 用JS实现贪吃蛇小游戏

    用JS实现贪吃蛇小游戏

    这篇文章主要为大家详细介绍了用JS实现贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 解决Babylon.js中AudioContext was not allowed to start异常问题

    解决Babylon.js中AudioContext was not allowed&nbs

    这篇文章主要介绍了解决Babylon.js中AudioContext was not allowed to start异常问题方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • JavaScript实现系统防挂机(无操作弹窗)的示例详解

    JavaScript实现系统防挂机(无操作弹窗)的示例详解

    在一些学习系统,或者考试系统中。一旦出现长时间未操作,就会判定这个人不在场。所以就会进行退出系统,处于对安全和系统负担还有业务的需求。本文就来用JavaScript做一个系统防挂机功能,需要的可以参考一下
    2023-01-01
  • javascript currying返回函数的函数

    javascript currying返回函数的函数

    currying函数是一种返回函数的函数,是闭包最伟大的应用之一。有关闭包更详细的定义可参见这里与这里。如下currying函数的一种定义。
    2009-11-11
  • JavaScript利用normalizr实现复杂数据转换

    JavaScript利用normalizr实现复杂数据转换

    当我们需要进行数据转换以便拆分和维护时,可以使用redux作者 Dan Abramov 编写的normalizr来处理数据,本文将为大家详细讲讲其用法,感兴趣的可以了解一下
    2022-07-07
  • javascript实现密码验证

    javascript实现密码验证

    这篇文章主要介绍了javascript密码验证的实现方法,过程很简单具有一定的参考价值,适合初学者学习研究,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • JS表的模拟方法

    JS表的模拟方法

    这篇文章主要介绍了JS表的模拟方法,涉及javascript模拟表的生成、添加与删除节点的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • TypeScript中的类型运算符实现

    TypeScript中的类型运算符实现

    TypeScript 是一种强类型语言,它通过使用类型运算符来强化类型安全性,本文主要介绍了TypeScript中的类型运算符实现,感兴趣的可以了解一下
    2023-10-10
  • 详解微信小程序实现跑马灯效果(附完整代码)

    详解微信小程序实现跑马灯效果(附完整代码)

    这篇文章主要介绍了微信小程序跑马灯效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详解javascript replace高级用法

    详解javascript replace高级用法

    这篇文章主要介绍了详解javascript replace高级用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02

最新评论