微信小程序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 相关文章推荐
jQuery提交多个表单的小例子
Jun 30 Javascript
JS实现一键回顶功能示例代码
Oct 28 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
微信小程序scroll-view的滚动条设置实现
Mar 02 Javascript
详解小程序横屏方案对比
Jun 28 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获取文件后缀的9种方法
2016/03/22 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
python实现解数独程序代码
2017/04/12 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python中调用其他程序的方式详解
2019/08/06 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
教师自荐信
2013/12/10 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
先进党支部事迹材料
2014/01/13 职场文书
销售类求职信
2014/06/13 职场文书
家长高考寄语
2015/02/27 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
小学生暑假生活总结
2015/07/13 职场文书
婚庆答谢词大全
2015/09/29 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技