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

前端表格滑动滚动条太费事,做个浮动滑动插件

比如下面的表格,因为滚动条样式设计得很窄,所以用鼠标滑动起来很费劲

<template><el-table:data="tableData"style="width: 600px"height="250"><el-table-columnfixedprop="date"label="日期"width="150"></el-table-column><el-table-columnprop="name"label="姓名"width="120"></el-table-column><el-table-columnprop="province"label="省份"width="120"></el-table-column><el-table-columnprop="city"label="市区"width="120"></el-table-column><el-table-columnprop="address"label="地址"width="300"></el-table-column><el-table-columnprop="zip"label="邮编"width="120"></el-table-column></el-table>
</template><script>export default {data() {return {tableData: [{date: '2016-05-03',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-02',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-04',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-01',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-08',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-06',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-07',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}]}}}
</script>
<style>
::-webkit-scrollbar-track {box-shadow: rgb(255, 255, 255) 0px 0px 0.27778rem inset;background: rgb(255, 255, 255);border-radius: 0.55556rem;
}
::-webkit-scrollbar-thumb {background: rgb(199, 0, 25);border-radius: 0.55556rem;
}
::-webkit-scrollbar {height: 0.33333rem;width: 0.33333rem;
}
</style>

使滚动条向左移,可以使用下面两种方法

document.getElementsByClassName('el-table__body-wrapper')[0].scrollLeft += 120
// el-table 方法
this.$refs.elTable.$refs.bodyWrapper.scrollLeft += 120

再添加按钮可拖动功能

 

<template><div style="text-align: left;vertical-align: top;"><div ref="dialog" class="dialog-header" @mousedown="startDrag($event)"><el-button type="success" icon="el-icon-arrow-left" circle @click="leftClick"></el-button><el-button type="success" icon="el-icon-arrow-right" circle @click="rightClick"></el-button></div><el-table :data="tableData" ref="elTable" style="width: 600px" height="250"><el-table-column fixed prop="date" label="日期" width="150"></el-table-column><el-table-column prop="name" label="姓名" width="120"></el-table-column><el-table-column prop="province" label="省份" width="120"></el-table-column><el-table-column prop="city" label="市区" width="120"></el-table-column><el-table-column prop="address" label="地址" width="300"></el-table-column><el-table-column prop="zip" label="邮编" width="120"></el-table-column></el-table></div>
</template><script>
export default {data() {return {tableData: [{date: '2016-05-03',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-02',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-04',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-01',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-08',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-06',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}, {date: '2016-05-07',name: '王小虎',province: '上海',city: '普陀区',address: '上海市普陀区金沙江路 1518 弄',zip: 200333}],isDragging: false,offsetX: 0,offsetY: 0}},methods: {leftClick() {// document.getElementsByClassName('el-table__body-wrapper')[0].scrollLeft -= 120this.$refs.elTable.$refs.bodyWrapper.scrollLeft -= 120},rightClick() {this.$refs.elTable.$refs.bodyWrapper.scrollLeft += 120},startDrag(event) {this.isDragging = true;this.offsetX = event.clientX - this.$refs.dialog.offsetLeft;this.offsetY = event.clientY - this.$refs.dialog.offsetTop;document.addEventListener('mousemove', this.drag);document.addEventListener('mouseup', this.stopDrag);},drag(event) {if (this.isDragging) {this.$refs.dialog.style.left = event.clientX - this.offsetX + 'px';this.$refs.dialog.style.top = event.clientY - this.offsetY + 'px';}},stopDrag() {this.isDragging = false;document.removeEventListener('mousemove', this.drag);document.removeEventListener('mouseup', this.stopDrag);}}
}
</script>
<style>
::-webkit-scrollbar-track {box-shadow: rgb(255, 255, 255) 0px 0px 0.27778rem inset;background: rgb(255, 255, 255);border-radius: 0.55556rem;
}::-webkit-scrollbar-thumb {background: rgb(199, 0, 25);border-radius: 0.55556rem;
}::-webkit-scrollbar {height: 0.33333rem;width: 0.33333rem;
}.dialog-header {cursor: move;background-color: #f0f0f0;padding: 5px;position: absolute;z-index: 5;
}
</style>

最终效果:

http://www.xdnf.cn/news/6368.html

相关文章:

  • Java基于SpringBoot的外卖系统小程序【附源码、文档说明】
  • 功能连接计算的科学选择:静息态fMRI中20种指标的全面评估
  • 卓力达红外热成像靶标:革新军事训练与航空检测的关键技术
  • FastAPI系列16:从API文档到TypeScript 前端客户端(SDKs)
  • 3天重庆和成都旅游规划
  • 【PmHub后端篇】PmHub集成 Sentinel+OpenFeign实现网关流量控制与服务降级
  • acwing 4275. Dijkstra序列
  • 二叉树复习(C语言版)
  • 国标GB28181视频平台EasyGBS打造交通道路/停车场/公共场所违章视频监控解决方案
  • keil编译时报错:error:Could not open file .\***\core_cm3.o(最有用的方法没有之一!!!)
  • 代码随想录算法训练营第三十九天(打家劫舍专题) | 198.打家劫舍、213.打家劫舍II、337.打家劫舍III
  • Windows更新暂停七天关键注册表
  • 无人机箱号识别系统结合5G技术的应用实践
  • 数字IC后端零基础入门基础理论(Day2)
  • AD 间距规则与布线规则
  • GaussDB 实例 gsql 连接方式详解
  • 在python中使用Json提取数据
  • [思维模式-38]:看透事物的关系:什么是事物的关系?事物之间的关系的种类?什么是因果关系?如何通过数学的方式表达因果关系?
  • 第五部分:第三节 - Express.js 框架入门:厨房的流程管理系统
  • 力扣-102.二叉树的层序遍历
  • 在 Ubuntu 20.04.6 LTS 中将 SCons 从 3.1.2 升级到 4.9.1
  • c++和c的不同
  • 【复刻】人工智能技术应用如何影响企业创新(2007-2023年)
  • 鸿蒙Next API17学习新特性之组件可见区域变化事件新增支持设置事件的回调参数,限制它的执行间隔
  • MATLAB 中常用的微分函数介绍
  • Redis的热Key问题如何解决?
  • 信息化项目绩效管理办法V5.0
  • 一篇解决Redis:持久化机制
  • 天拓四方盛装亮相第二十七届中国北京国际科技产业博览会
  • 未来软件开发趋势与挑战