【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>
相关推荐
恋猫de小郭7 分钟前
Flutter PC 多窗口最新进展,底层原生窗口句柄支持已合并
android·前端·flutter
LIO20 分钟前
Vue3 + Vite + Pinia + TypeScript 项目完整搭建与实战指南
前端·vue.js
kilito_0121 分钟前
vue官网例子 讲解2
前端·javascript·vue.js
蜡台21 分钟前
Vue实现动态路由
前端·javascript·vue.js·router
xiao阿娜的妙妙屋127 分钟前
当AI Agent开始自我进化,我们普通人应该怎么办?
前端
sudo_jin28 分钟前
从“谁调用指向谁”到“手写Bind源码”,彻底搞懂JavaScript的this机制
前端·javascript
小蜜蜂dry29 分钟前
nestjs实战-登录、鉴权(二)
前端·后端·nestjs
全栈王校长29 分钟前
Nest 文件上传 - 就是增强版的 el-upload
前端·后端·nestjs
ZC跨境爬虫29 分钟前
海南大学交友平台开发实战 day10(后端向前端输出_前端读取数据全流程联调+日志调试落地)
前端·python·sqlite·html·状态模式
xiaotao13130 分钟前
CSS中的Grid 布局
前端·css