微信小程序滚动tab的实现

1.目的:为了解决滚动版本的tab,以及实现虹吸效果。

2.方案:自己动手写了一个Demo,用于测试实现如上的效果。其代码有做参考,在这里先声明。具体的参照如下:重庆大学二手书小程序。

3.效果:

A)初始化效果:

               

B)最终效果:

               

4.实现:

          项目结构如下:

                               

WXML代码如下:

<view class="Hv">间隔高度,测试虹吸效果1</view>
<view id="block0"></view>
<!--分类导航-->
<scrolltab tabdata="{{college}}" scrollTop="{{scrollTop}}" scrollH="{{scrollH}}" bindtabtap="tabtapopt"/> <view class="Hv">间隔高度,测试虹吸效果A</view>
<view class="Hv">间隔高度,测试虹吸效果B</view>
<view class="Hv">间隔高度,测试虹吸效果C</view>
<view class="Hv">间隔高度,测试虹吸效果D</view>

   JS代码如下:

//index.js
Page({
data: {
college: [{
name: '分类A',
id: -1
},
{
name: '分类B',
id: 0
},
{
name: '分类C',
id: 1
},
{
name: '分类D',
id: 2
},
{
name: '分类E',
id: 3
},
{
name: '分类F',
id: 4
},
{
name: '分类G',
id: 5
},
{
name: '分类H',
id: 6
},
{
name: '分类I',
id: 7
},
{
name: '分类J',
id: 8
},
{
name: '分类K',
id: 9
},
{
name: '分类L',
id: 10
},
{
name: '分类M',
id: 11
},
{
name: '分类N',
id: 12
},
{
name: '分类O',
id: 13
},
{
name: '分类P',
id: 14
},
],
scrollTop: 0,
scrollH:0,
},
onLoad: function() {
var that=this;
const query = wx.createSelectorQuery()
query.select('#block0').boundingClientRect()
query.selectViewport().scrollOffset()
query.exec(function (res) {
that.setData({
scrollH: res[0].top,
})
})
},
//监测屏幕滚动
onPageScroll: function(e) {
this.setData({
//scrollTop: parseInt((e.scrollTop) * wx.getSystemInfoSync().pixelRatio),
scrollTop: parseInt(e.scrollTop)
})
},
//操作获取数据
tabtapopt(e) {
var that = this; var colleges = that.data.college;
var collegeCur = e.detail; if (collegeCur == -2) {
wx.showToast({
title: '全部',
})
} else {
var names = "";
colleges.forEach(function(value, index) {
if (collegeCur == value.id) {
names = value.name;
}
}) wx.showToast({
title: names,
})
}
},
})

  JSON文件如下:

{
"usingComponents": {
"scrolltab":"../../components/scrolltab/index"
}
}

  WXSS文件如下:

/**index.wxss**/
.Hv{
width: 100vw;
height: 310px;
} /*滚动Tab*/
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}

  

github地址如下:https://github.com/weiyunhelong/WxScrollTab,欢迎下载并使用!

微信小程序滚动tab的实现的更多相关文章

  1. 微信小程序-滚动Tab选项卡

    前言:今天呢 给大家详细讲解一下滚动Tab选项卡:左右可滑动切换的效果,希望对大家做项目时候有用! 以前也遇到过这个,但是没有做记录.转载来源于:https://www.jianshu.com/p/9 ...

  2. 微信小程序滚动Tab选项卡:左右可滑动切换

    最终效果如上.问题: 1.tab标题总共8个,所以一屏无法全部显示. 2.tab内容区左右滑动切换时,tab标题随即做标记(active). 3.当active的标题不在当前屏显示时,要使其能显示到当 ...

  3. 微信小程序滚动Tab实现左右可滑动切换

    --------------------------------------------------------wxml---------------------------------------- ...

  4. 转载【微信小程序】:微信小程序滚动Tab选项卡:左右可滑动切换(仿某宝)

    1.本文转载至:http://blog.csdn.net/sophie_u/article/details/71745125 2.效果: 3.最终效果如上.问题: 1).tab标题总共8个,所以一屏无 ...

  5. 微信小程序写tab切换

    微信小程序之tab切换效果,如图: 最近在学习微信小程序并把之前的公司app搬到小程序上,挑一些实现效果记录一下(主要是官方文档里没说的,毕竟官方文档只是介绍功能) .wxml代码: <view ...

  6. 微信小程序-滚动消息通知

    写在前面: 微信小程序学的不太多,做了一个简单的项目,回来很快时间内把在深圳两天的房租给赚回来了. 这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组 ...

  7. 微信小程序-滚动消息通知效果

    这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组件在小程序中是滑块视图容器. 我们通过vertical属性(默认为false,实现默认左右滚动)设置 ...

  8. 微信小程序滚动动画,点击事件及评分星星制作!

    前言 小程序上线刷爆了朋友圈,但是最近渐渐消沉了,很少有动静!最近公司项目需要,体验了一下微信小程序,制作了几个功能,布局感觉很简单,但是交互和动画等写起来确实很费劲,主要是因为他不能操作DOM,只能 ...

  9. 【微信小程序】微信小程序-实现tab

    一.前言 小程序开发中,有很多封装好的控件供开发者使用,但是,很常见的tab选项卡居然没有,只能自己搞一个. 实现原理也很简单,无非是用给view(tab)设置一个点击事件bintap,并且给view ...

随机推荐

  1. VectorMap.js 矢量地图库 – 快速入门

    VectorMap.js是一个开源地图渲染JavaScript库, 可以使用WebGL或者HTML5两种方式进行交互式矢量地图 (包括“矢量瓦片地图”,一般性矢量数据地图)和 栅格瓦片地图的渲染. W ...

  2. ICMP重定向 Redirect netwox libpcap netwag

    搭建环境 两台虚拟机. 攻击者:192.168.1.8 被攻击者:192.168.1.9 网络配置 主机均采用DHCP 如果没有路由器,可以使用NAT模式来做 攻击者配置 打开转发数据包功能 # su ...

  3. 需求规格说明书(final)

    1. 引言 1.1 编写目的 该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入. 本文档的预期读者包括:triple兔成员,软件工程老师,用 ...

  4. Nginx 配置高可用的集群

    1.什么是 nginx 高可用 (1)需要两台 nginx 服务器 (2)需要 keepalived (3)需要虚拟 ip 2.配置高可用的准备工作 (1)需要两台服务器 192.168.17.129 ...

  5. 讲解web服务所涉及到的重要知识点

    HTTP:超文本传输协议,默认为TCP的80端口.带有超级链接的文本,而这些链接成为超链接! loadrunner :专业级测试工具,模拟你的应用程序的真实,进行评测! HTML:超文本编辑语言. H ...

  6. JS之for循环面试题

    今天同事问了道问题 ,b=; ,b<;++a,++b){ g=a+b } console.log(g) 问输出结果为多少??? 答案:12 这里要知道for循环的条件不管写多少个,必须都满足才可 ...

  7. NN tutorials:

    确实“人话”解释清楚了 ^_^ 池化不只有减少参数的作用,还可以: 不变性,更关注是否存在某些特征而不是特征具体的位置.可以看作加了一个很强的先验,让学到的特征要能容忍一些的变化.防止过拟合,提高模型 ...

  8. LG2375/LOJ2246 「NOI2014」动物园 KMP改造

    问题描述 LG2375 LOJ2246 题解 看了题解,需要回看,需要继续通过本题深入理解KMP. 为了将 \(\mathrm{KMP}\) 和只插入了一个模式串的\(\mathrm{AC}\)自动机 ...

  9. luoguP4588 [TJOI2018]数学计算

    题意 考虑一个操作会对一段时间内的询问产生影响,于是将线段树上的这段时间打上乘这个数的标记,最后dfs整颗线段树. code: #include<bits/stdc++.h> using ...

  10. PyQt5发布技巧:指定插件(plugins)路径

    一般来说,发布后的应用程序要能正常使用必须设置插件路径的环境变量: cmd脚本: wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_P ...