vue3鼠标拖拽滑动效果实现demo

 更新时间:2023年12月05日 11:08:48   作者:清儿  
这篇文章主要为大家介绍了vue3鼠标拖拽滑动效果实现demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

vue3-dragscroll来实现

使用element-plus在页面里写一个表格,表格有横向和竖向滚动条,想实现表格可以鼠标拖拽滚动。

可以用vue3-dragscroll来实现,首先需要在css里隐藏掉表格的滚动条,将表格的父级设置固定的宽高,并在父级标签上增加v-dragscroll指令。

<template>
  <div class="data-table" v-dragscroll>
    <el-table
      :data="rowData"
      border
      :show-header="false"
      table-layout="auto"
      size="small"
    >
      <el-table-column
        :prop="item.prop"
        v-for="item of columns"
        :key="item.prop"
        :fixed="item.fixed ? true : false"
        :width="item.width"
      >
      </el-table-column>
    </el-table>
  </div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { useDataTable } from './scripts/data-table'
const { columns, rowData } = useDataTable()
</script>
<style scoped lang="scss">
.data-table {
  width: 630px;
  height: 320px;
  overflow: auto;
  border: solid 1px #ebeef5;
  &::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }
  &::-webkit-scrollbar-track {
    width: 6px;
    background: rgba(#101F1C, 0.1);
    -webkit-border-radius: 2em;
    -moz-border-radius: 2em;
    border-radius: 2em;
  }
  &::-webkit-scrollbar-thumb {
    background-color: rgba(144,147,153,.5);
    background-clip: padding-box;
    min-height: 6px;
    -webkit-border-radius: 2em;
    -moz-border-radius: 2em;
    border-radius: 2em;
    transition: background-color .3s;
    cursor: pointer;
  }
  &::-webkit-scrollbar-thumb:hover {
    background-color: rgba(144,147,153,.3);
  }
}
:deep .el-table {
  width: fit-content;
  max-width: none;
  border: none;
}
:deep .el-scrollbar__bar.is-vertical {
  width: 0;
}
:deep .data-table thead {
  height: 0;
  display: block;
}
:deep .hide_line .el-table td.el-table__cell {
  border-bottom: none;
}
:deep .data-table .el-table--small .el-table__cell {
  padding: 0;
}
:deep .data-table .el-table--small .cell {
  padding: 4px 8px;
}
:deep .data-table .hover .cell {
  border-left: 1px solid blue;
  border-right: 1px solid blue;
}
</style>

全局安装vue3-dragscroll 

npm install vue3-dragscroll

在main.ts文件内引入

import { createApp } from 'vue'
import '@/style/index.css'
import App from './App.vue'
import router from './router'
import Vue3Dragscroll from 'vue3-dragscroll'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' 
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.use(ElementPlus, { locale: zhCn })
app.use(Vue3Dragscroll)
app.mount('#app')

以上就是vue3鼠标拖拽滑动效果实现demo的详细内容,更多关于vue3鼠标拖拽滑动的资料请关注脚本之家其它相关文章!

相关文章

  • Vue表单控件数据绑定方法详解

    Vue表单控件数据绑定方法详解

    本文将详细介绍Vue表单控件数据绑定方法,需要的朋友可以参考下
    2020-02-02
  • 解决echarts echarts数据动态更新和dataZoom被重置问题

    解决echarts echarts数据动态更新和dataZoom被重置问题

    这篇文章主要介绍了解决echarts echarts数据动态更新和dataZoom被重置问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 使用Vant完成DatetimePicker 日期的选择器操作

    使用Vant完成DatetimePicker 日期的选择器操作

    这篇文章主要介绍了使用Vant完成DatetimePicker 日期的选择器操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue 监听视频播放时长的实例代码

    Vue 监听视频播放时长的实例代码

    本文介绍了如何通过源码实现对视频实时时长、播放时长和暂停时长的监听,详细阐述了相关技术的应用方法,帮助开发者更好地掌握视频监控技术,提高用户体验
    2024-10-10
  • vue中组件通信的八种方式(值得收藏!)

    vue中组件通信的八种方式(值得收藏!)

    这篇文章主要给大家总结介绍了关于vue中八种组件通信方式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • vue3+ts封装axios,无感刷新问题

    vue3+ts封装axios,无感刷新问题

    文章详细介绍了前端项目开发中常见的技术栈,包括安装依赖、创建类型定义、状态管理、核心封装(Axios请求)、API接口示例、组件使用以及可选的路由守卫,作者分享了个人经验,希望为开发者提供参考和帮助
    2025-12-12
  • vue-lazyload图片延迟加载插件的实例讲解

    vue-lazyload图片延迟加载插件的实例讲解

    下面小编就为大家分享一篇vue-lazyload图片延迟加载插件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • VUE实现注册与登录效果

    VUE实现注册与登录效果

    这篇文章主要为大家详细介绍了VUE实现注册与登录效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue Echarts实现仪表盘案例

    vue Echarts实现仪表盘案例

    这篇文章主要为大家详细介绍了vue Echarts实现仪表盘案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • uniapp+vue3路由跳转传参的实现

    uniapp+vue3路由跳转传参的实现

    本文主要介绍了uniapp+vue3路由跳转传参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11

最新评论