当前位置: 首页 > 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.xdnf.cn/news/1245745.html

相关文章:

  • MousePlus鼠标右键增强工具v5.5.25,支持鼠标轮盘功能
  • Linux驱动25 --- RkMedia音频API使用增加 USB 音视频设备
  • Windows 远程管理 (WinRM)问题详解包括c#与python例子
  • C++ 变量初始化方式总结 | 拷贝初始化 | 列表初始化 | 值初始化
  • YooAsset源码阅读-Downloader篇
  • 本地使用uv管理的python项目怎么部署到服务器?
  • 攻击实验(ARP欺骗、MAC攻击、报文洪水攻击、DNS欺骗)
  • Laravel The requested URL /hellowzy was not found on this server. 404 问题的解决
  • 2025年渗透测试面试题总结-01(题目+回答)
  • 《Node.js与 Elasticsearch的全文搜索架构解析》
  • 如何用分布式架构视角理解宇宙稳定性?从精细调参到微服务的类比思考
  • 【C++】模板深入进阶
  • 检索召回率优化探究四:基于LangChain0.3集成Milvu2.5向量数据库构建的智能问答系统
  • Sklearn 机器学习 数据聚类 层次聚类的两个重要属性
  • 编码器模型和解码器模型解析
  • GPT-5的诞生之痛:AI帝国的现实危机
  • LLM开发——语言模型会根据你的提问方式来改变答案
  • arp攻击(ettercap 版本0.8.3.1)
  • Physics Simulation - UE中Projectile相关事项
  • tensorRT配合triton部署模型
  • HTML 如何转 Markdown
  • 【Redis】string常用命令
  • 417页PDF | 2025年“人工智能+”行业标杆案例荟萃
  • 三款好用的PDF阅读器
  • 深入理解 Android SO 导出符号:机制与安全优化
  • Python高级编程与实践:Python高级数据结构与编程技巧
  • 后量子时代已至?中国量子加密技术突破与网络安全新基建
  • 前端1.0
  • AIDL学习
  • 云计算一阶段Ⅱ——11. Linux 防火墙管理