微信小程序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 组件之旅(一)分析和设计
Oct 28 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
文本域中换行符的替换示例
Mar 04 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
May 25 Javascript
基于JS对象创建常用方式及原理分析
Jun 28 Javascript
解决Vue页面固定滚动位置的处理办法
Jul 13 Javascript
JS实现图片手风琴效果
Apr 17 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
Jul 24 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
详解ES6 CLASS在微信小程序中的应用实例
Apr 24 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
微信小程序实现自上而下字幕滚动
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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
详解php命令注入攻击
2019/04/06 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
js加强的经典分页实例
2013/03/15 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python程序设计入门(3)数组的使用
2014/06/16 Python
深入理解Python变量与常量
2016/06/02 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
Python转换时间的图文方法
2019/07/01 Python
基于Python实现扑克牌面试题
2019/12/11 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Keras设置以及获取权重的实现
2020/06/19 Python
农村党支部先进事迹
2014/01/14 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
毕业生个人自荐书
2015/03/05 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS