当前位置: 首页 > news >正文

uniapp 实现滑动元素并下方有滚动条显示

用uniapp实现下图的样式

代码如下:

<template><view class="content"><view class="data-box" ref="dataBox" @touchend="handleEnd"><view class="data-list"><view class="data-item num1">1</view><view class="data-item num2">2</view><view class="data-item num3">3</view><view class="data-item num4">4</view><view class="data-item num5">5</view><view class="data-item num6">6</view></view></view><view class="indicator"><view class="line-bar" :style="{'transform':'translateX('+translateX + 'px)'}"></view></view></view>
</template><script>export default {data() {return {translateX: 0};},methods: {handleEnd(e) {// 获取滚动条所在位置let scrollLeft = this.$refs.dataBox.$el.scrollLeft;// 获取当前屏幕宽度const screenWidth = uni.getSystemInfoSync().screenWidth;// 获取item的宽度(px)let itemWidth = ((screenWidth * Number.parseInt(2250)) / 750) / 6;// 根据滚动条所在位置计算当前所在的itemlet index = scrollLeft / itemWidth;// 移动滚动条this.translateX = index * (120 / 6);// 滚动条的宽度 / item的总数量},}}
</script><style lang="scss" scoped>.content {.data-box {width: 100%;overflow: scroll;}.data-list {width: 2250rpx;height: 100px;}.data-item {display: inline-block;width: 50vw;height: 100px;}.num1 {background-color: palegoldenrod;}.num2 {background-color: pink;}.num3 {background-color: skyblue;}.num4 {background-color: plum;}.num5 {background-color: seagreen;}.num6 {background-color: orchid;}.indicator {margin: 10rpx auto;border-radius: 10rpx;height: 4px;width: 120px;// 滚动条宽度background-color: #797979;display: flex;.line-bar {width: 40px;// (显示的item数量 / item的总数量) * 滚动条宽度background-color: pink;transition-duration: .3s;}}}
</style>

效果如下:

 

http://www.lryc.cn/news/111456.html

相关文章:

  • QT充当客户端模拟浏览器等第三方客户端对https进行双向验证
  • 【JVM】 垃圾回收篇——自问自答(1)
  • Image Line FL Studio v21.0.3.3517 Producer版全插件版WIN免费下载完整版
  • PHP8条件控制语句-PHP8知识详解
  • 【PHP代码审计】ctfshow web入门 php特性 93-104
  • CSS元素的显示模式
  • Go strings.Title方法被废弃(Deprecated)
  • vuejs源码分析之全局API(vm.$off)
  • elasticSearch常见的面试题
  • 第一课-前提-Stable Diffusion 教程
  • Python 开发工具 Pycharm —— 使用技巧Lv.2
  • 代码随想录第39天 | 62. 不同路径、63.不同路径II
  • QMT入门—初识QMT
  • C 语言的 return 语句
  • 企业级Vue路由角色权限应该怎么做?
  • 3.2.0 版本预告!Apache DolphinScheduler API 增强相关功能
  • 测试工程师的工作
  • 压力测试与测试工具jmeter的介绍
  • 解析整型最大值(Integer.MIN_VALUE)溢出变为最小值(Integer.MAX_VALUE)
  • 【openpcdet】dbinfo内的信息
  • clickhouse查询缓存
  • vue中使用Base64加密、解密以及des加密、解密
  • 关于丢失安卓秘钥的撞sha-1值的办法
  • maven如何打包你会吗?
  • idea 控制台 打印 Tomcat日志Tomcat Catalina Log控制台乱码问题
  • python我的世界
  • SpringBoot+vue 大文件分片下载
  • scanf函数读取数据 清空缓冲区
  • js 文件常用转换
  • 基于Open3D的点云处理15-特征点