【Vue】鼠标滚轮横向滚动操作设计

需求:

鼠标滑轮滚动,操作横向滚动条

解决:

监控滚动操作,根据滚动偏移量,修改横向滚动条的位置

js 复制代码
<template>
  <div class="image_view">
    <div class="image_content">
      <div
        v-for="(item, index) in 20"
        :key="item"
        class="image_item"
        :style="{ background: colors[index % colors.length] }"
      ></div>
    </div>
  </div>
</template>
 
<script setup>
import TipsFooterVue from "@/components/base/TipsFooter.vue";
import { onMounted } from "vue";
 
const colors = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"];
 
onMounted(() => {
  // 获取 dom
  let div = document.querySelector(".image_content");
  // 监听 dom
  div.addEventListener("wheel", function (e) {
    let left = -e.wheelDelta || e.deltaY / 2;
    console.log("wheelDelta:", -e.wheelDelta, "deltaY :", e.deltaY);
    // 修改滚动条位置
    div.scrollLeft = div.scrollLeft + left;
  });
});
</script>
 
<style lang="less" scoped>
.image_view {
  width: 100%;
  .image_content {
    width: 100%;
    height: 200px;
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    overflow-y: hidden;
    .image_item {
      width: 300px;
      height: 200px;
      flex: 0 0 auto;
    }
  }
}
</style>
相关推荐
加载中3613 分钟前
pnpm时代包版本不一致问题还是否存在
前端·面试·npm
老马啊老马3 分钟前
30 分钟搞定!Docker+Jenkins+Nginx + 腾讯云实现前端 CI/CD
前端
VillenK4 分钟前
用插件的方式注入Vue组件
前端·vue.js
掘金安东尼7 分钟前
Node.js 如何在 2025 年挤压 I/O 性能
前端·javascript·github
跟橙姐学代码17 分钟前
Python异常处理:告别程序崩溃,让代码更优雅!
前端·python·ipython
niuhuahua20 分钟前
大屏拖拽功能,配合ai组件使用,配合各个组件都可使用
前端
得物技术34 分钟前
前端日志回捞系统的性能优化实践|得物技术
前端·javascript·性能优化
ZKshun37 分钟前
[ 前端JavaScript的事件流机制 ] - 事件捕获、冒泡及委托原理
javascript
陶甜也37 分钟前
threeJS 实现开花的效果
前端·vue·blender·threejs
用户76787977373239 分钟前
后端转全栈之Next.js 路由系统App Router
前端·next.js