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

vue3通过按钮实现横向滚动或鼠标滚动横坐标滚动

效果图:可点击左右文字进行滚动、或通过滚动鼠标 内容左右滚动
在这里插入图片描述

<template><div class="Home"><div style="display: flex;height: 100%;align-items: center;"><div @click="scrollLeft()" style="width: 80px;text-align: center;font-size: 30px;"></div><div ref="scrollContainerRef" class="testContent" @scroll="isSrcoll($event)"><span v-for="item in 15" :key="item" class="test_card">{{item}}</span></div><div @click="scrollRight()" style="width: 80px;text-align: center;font-size: 30px;"></div></div></div>
</template>
<script setup>
onMounted(() => {let div = document.querySelector(".testContent");// 监听 domdiv.addEventListener("wheel", function (e) {let left = -e.wheelDelta || e.deltaY / 2;// console.log("wheelDelta:", -e.wheelDelta, "deltaY :", e.deltaY);// 修改滚动条位置div.scrollLeft = div.scrollLeft + left;});});
//点击按钮横向滚动模块
let scrollContainerRef = ref(null)
const scrollLeft = () => {scrollContainerRef.value.scrollBy({left: -600, // 每次点击滚动的距离behavior: 'smooth',});}
const scrollRight = () => {scrollContainerRef.value.scrollBy({left: 600, // 每次点击滚动的距离behavior: 'smooth',});}
// 判断左右按钮是否显示(具体显示隐藏逻辑不写了)
const isSrcoll = (event) => {let el = event.target;if (Math.ceil(el.scrollLeft + el.clientWidth) >= el.scrollWidth) {console.log("已滚动到最右侧");}if (!el.scrollLeft) {console.log(el.scrollLeft, "左边左边");}}
</script><style scoped>
::-webkit-scrollbar {/* 隐藏滚动条 */display: none;
}
.testContent {height: 100px;width: 800px;display: flex;justify-content: space-between;overflow-x: auto;
}
.test_card {width: 220px;height: 100%;display: inline-block;background: #a3a2a2;margin-right: 5px;flex-shrink: 0;
}
</style>
http://www.lryc.cn/news/610639.html

相关文章:

  • 用 Python 构建高质量的中文 Wikipedia 语料库:从原始 XML 到干净段落
  • 【taro react】 ---- useModel 数据双向绑定 hook 实现
  • 【乐企板式文件生成工程】关于乐企板式文件(PDF/OFD/XML)生成工程介绍
  • Taro Hooks 完整分类详解
  • wps创建编辑excel customHeight 属性不是标准 Excel Open XML导致比对异常
  • 云计算一阶段Ⅱ——11. Linux 防火墙管理
  • 《Node.js与 Elasticsearch的全文搜索架构解析》
  • Sentinel全面实战指南
  • 剑指offer第2版:字符串
  • Day34 GPU训练及类的call方法
  • Android audio之 AudioDeviceInventory
  • PCBA电子产品复制全攻略:从入门到精通
  • 【音视频】WebRTC 一对一通话-信令服
  • 强化学习_Paper_1991_Reinforcement learning is direct adaptive optimal control
  • 自然语言处理×第三卷:文本数据分析——她不再只是贴着你听,而开始学会分析你语言的结构
  • python+MySQL组合实现生成销售财务报告
  • 游戏画面总是卡顿怎么办 告别延迟畅玩游戏
  • 电脑搜索不到公司无线网络
  • 基于ARM+FPGA多通道超声信号采集与传输系统设计
  • NuGet03-私有仓库搭建
  • mac前端环境安装
  • 【ARM】CMSIS6 介绍
  • Mac上pnpm的安装与使用
  • AIDL学习
  • 《算法导论》第 2 章 - 算法基础
  • 朴素贝叶斯(Naive Bayes)算法详解
  • pipeline方法关系抽取--课堂笔记
  • 神坛上的transformer
  • VUE2 学习笔记18 路由守卫
  • 无人机 × 巡检 × AI识别:一套可复制的超低延迟低空视频感知系统搭建实践