微信小程序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 相关文章推荐
getComputedStyle与currentStyle获取样式(style/class)
Mar 19 Javascript
jquery 添加节点的几种方法介绍
Sep 04 Javascript
jQuery.trim() 函数及trim()用法详解
Oct 26 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
BootstrapValidator超详细教程(推荐)
Dec 07 Javascript
jquery实现拖动效果(代码分享)
Jan 25 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
详解Vue中watch的详细用法
Nov 28 Javascript
详解vue-cli 脚手架 安装
Apr 16 Javascript
js时间转换毫秒的实例代码
Aug 21 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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
用libtemplate实现静态网页生成
2006/10/09 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
JS实现判断有效的数独算法示例
2019/02/25 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python的词法分析与语法分析
2013/05/18 Python
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
法国房车租赁网站:Yescapa
2019/08/26 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
法律专业应届本科毕业生求职信
2013/10/25 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
小学少先队活动方案
2014/02/18 职场文书
项目安全员岗位职责
2015/02/15 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
任长霞观后感
2015/06/16 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python