微信小程序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 相关文章推荐
一段非常简单的让图片自动切换js代码
Nov 10 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
javascript 常见功能汇总
Jun 11 Javascript
jQuery检测某个元素是否存在代码分享
Jul 09 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
深入理解node.js http模块
Jan 24 Javascript
JS实现的base64加密解密操作示例
Apr 18 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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
我的论坛源代码(九)
2006/10/09 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
vue中使用echarts的示例
2021/01/03 Vue.js
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
Python 模拟购物车的实例讲解
2017/09/11 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Python实现图片拼接的代码
2018/07/02 Python
Python对象转换为json的方法步骤
2019/04/25 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Python中的__init__作用是什么
2020/06/09 Python
利用python进行文件操作
2020/12/04 Python
用python对oracle进行简单性能测试
2020/12/05 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
大学生学习自我评价
2014/01/13 职场文书
装修五一活动策划案
2014/01/23 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
建议书格式
2015/02/04 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
教育教学读书笔记
2015/07/02 职场文书
尊师重教主题班会
2015/08/14 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
世界十大狙击步枪排行榜
2022/03/20 杂记