微信小程序scroll-view仿拼多多横向滑动滚动条


Posted in Javascript onApril 21, 2020

本文实例为大家分享了微信小程序横向滑动滚动条的具体代码,供大家参考,具体内容如下

效果图

微信小程序scroll-view仿拼多多横向滑动滚动条

微信小程序scroll-view仿拼多多横向滑动滚动条

实现代码

index.wxml

<scroll-view scroll-x="true" class="scroll-view-x" style="padding-top:10rpx" scroll-with-animation="true" wx:if="{{tlist[currentTab].secondList}}" scroll-left='0' bindscroll="getleft">
  <!--内容区域-->
  <view>
   <view class="navigator_second" wx:for="{{tlist[currentTab].secondList}}" wx:for-item="childItem" bindtap="getProductList" data-id="{{childItem.id}}">
   <image class="navigator_icon" src="{{childItem.icon}}"></image>
   <text class="navigator_text">{{childItem.name}}</text>
   </view>
  </view>
  <view wx:if="{{tlist[currentTab].thirdList}}">
   <view class="navigator_second" wx:for="{{tlist[currentTab].thirdList}}" wx:for-item="childItem" data-id="{{childItem.id}}" bindtap="getProductList">
   <image class="navigator_icon" src="{{childItem.icon}}" ></image>
   <text class="navigator_text">{{childItem.name}}</text>
   </view>
  </view>
  </scroll-view >
  <!--滚动条部分-->
  <view wx:if="{{slideShow}}" class="slide">
  <view class='slide-bar' >
   <view class="slide-show" style="width:{{slideWidth}}rpx; margin-left:{{slideLeft<=1 ? 0 : slideLeft+'rpx'}};"></view>
  </view>
  </view>

index.js

//获取应用实例
var app = getApp();
Page({
 data: {
 navigate_type:'',//分类类型,是否包含二级分类
 slideWidth:'',//滑块宽
 slideLeft:0 ,//滑块位置
 totalLength:'',//当前滚动列表总长
 slideShow:false,
 slideRatio:''
 },
 onLoad: function () {
 var self = this ;
 var systemInfo = wx.getSystemInfoSync() ;
 self.setData({
  list: _list,
  windowHeight: app.globalData.navigate_type == 1 ? systemInfo.windowHeight : systemInfo.windowHeight - 35,
  windowWidth: systemInfo.windowWidth,
  navigate_type: app.globalData.navigate_type
 })
 //计算比例
 self.getRatio();
 },
 //根据分类获取比例
 getRatio(){
 var self = this ;
 if (!self.data.tlist[self.data.currentTab].secondList || self.data.tlist[self.data.currentTab].secondList.length<=5){
  this.setData({
  slideShow:false
  })
 }else{
  var _totalLength = self.data.tlist[self.data.currentTab].secondList.length * 150; //分类列表总长度
  var _ratio = 230 / _totalLength * (750 / this.data.windowWidth); //滚动列表长度与滑条长度比例
  var _showLength = 750 / _totalLength * 230; //当前显示红色滑条的长度(保留两位小数)
  this.setData({
  slideWidth: _showLength,
  totalLength: _totalLength,
  slideShow: true,
  slideRatio:_ratio
  })
 }
 } ,
 //slideLeft动态变化
 getleft(e){
 this.setData({
  slideLeft: e.detail.scrollLeft * this.data.slideRatio
 })
 } 
})

index.wxss

.scroll-view-x{
 background-color: #fff;
 white-space: nowrap;
}
.navigator_second{
 width:150rpx;
 text-align:center;
 display:inline-block;
 height:115rpx;
}
.navigator_icon{
 width:60rpx;
 height:60rpx;
}
.navigator_text{
 display:block;
 width:100%;
 font-size:24rpx
}
.slide{
 height:30rpx;
 background:#fff;
 with:100%;
 padding:14rpx 0 5rpx 0
}
.slide .slide-bar{
 width:230rpx;
 margin:0 auto;
 height:1.5px;
 background:#eee;
}
.slide .slide-bar .slide-show{
 height:100%;
 background-color:#ff6969;

}

项目地址:微信小程序横向滑动滚动条

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

Javascript 相关文章推荐
Javascript 汉字字节判断
Aug 01 Javascript
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
使用JS读秒使用示例
Sep 21 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
js输出阴历、阳历、年份、月份、周示例代码
Jan 29 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
Jun 17 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
Dec 22 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 #Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 #Javascript
微信小程序仿RadioGroup改变样式的处理方案
Jul 13 #Javascript
通过封装scroll.js 获取滚动条的值
Jul 13 #Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
Jul 13 #Javascript
Angular5.0 子组件通过service传递值给父组件的方法
Jul 13 #Javascript
vue实现组件之间传值功能示例
Jul 13 #Javascript
You might like
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
Python实现进程同步和通信的方法
2018/01/02 Python
Python基于多线程实现抓取数据存入数据库的方法
2018/06/22 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
教师年终个人自我评价
2013/10/04 职场文书
单位在职证明范本
2014/01/09 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
司机岗位职责
2015/02/04 职场文书
关于学习的决心书
2015/02/05 职场文书
年底个人总结范文
2015/03/10 职场文书
个人求职信格式范文
2015/03/20 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python