css鼠标横向滚动并且不展示滚动条几种方法

需求:实现内容超出之后使用属性滚轮进行左右查看超出内容,并且隐藏滚动条

1.不使用框架实现

每次滚动就滚动40px的距离

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      .container {
        width: 300px;
        overflow-x: hidden;
        white-space: nowrap;
        border: 1px solid #ccc;
      }
      .content {
        display: inline-block;
      }
    </style>
  </head>
  <body>
    <div class="container" onwheel="scrollHorizontally(event)">
      <div class="content">Content 1</div>
      <div class="content">Content 2</div>
      <div class="content">Content 3</div>
      <div class="content">Content 4</div>
      <div class="content">Content 5</div>
      <div class="content">Content 6</div>
    </div>

    <script>
      function scrollHorizontally(e) {
        e = window.event || e;
        var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
        document.querySelector(".container").scrollLeft -= delta * 40; // 每次滚动移动的距离
        e.preventDefault();
      }
    </script>
  </body>
</html>

效果:

2.vue2使用自定义指令实现

html 复制代码
<template>
    <div style="height: 400px">
        <div class="container" v-horizontal-scroll>
            <div class="box">Content 1</div>
            <div class="box">Content 2</div>
            <div class="box">Content 3</div>
            <div class="box">Content 4</div>
            <div class="box">Content 5</div>
            <div class="box">Content 6</div>
            <div class="box">Content 1</div>
            <div class="box">Content 2</div>
            <div class="box">Content 3</div>
            <div class="box">Content 4</div>
            <div class="box">Content 5</div>
            <div class="box">Content 6</div>
        </div>
    </div>
</template>

<script>
export default {
    data() {
        return {};
    },
    directives: {
        'horizontal-scroll': {
            bind: function (el) {
                el.addEventListener('wheel', function (event) {
                    event.preventDefault();
                    el.scrollLeft += event.deltaY;
                });
            }
        }
    },
    mounted() {},
    methods: {}
};
</script>

<style lang="scss" scoped>
.container {
    width: 300px;
    overflow-x: hidden;
    white-space: nowrap;
    border: 1px solid #ccc;
    display: flex;
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
    margin: 50px;
}
.container::-webkit-scrollbar {
    display: none;
}
.box {
    // display: inline-block;
}
</style>

效果

文章到此结束,希望对你有所帮助~~

相关推荐
幸运小圣12 分钟前
Iterator迭代器 【ES6】
开发语言·javascript·es6
葱头的故事13 分钟前
将传给后端的数据转换为以formData的类型传递
开发语言·前端·javascript
中微子24 分钟前
🚀 2025前端面试必考:手把手教你搞定自定义右键菜单,告别复制失败的尴尬
javascript·面试
whyfail1 小时前
React v19.2版本
前端·javascript·react.js
慧慧吖@1 小时前
react基础
前端·javascript·react.js
浪裡遊2 小时前
MUI组件库与主题系统全面指南
开发语言·前端·javascript·vue.js·react.js·前端框架·node.js
CoderYanger2 小时前
前端基础——HTML练习项目:填写简历信息
前端·css·职场和发展·html
CodeCraft Studio2 小时前
国产化PDF处理控件Spire.PDF教程:如何在 C# 中从 HTML 和 PDF 模板生成 PDF
pdf·c#·html·.net·spire.pdf·pdf文档开发·html创建模板pdf
muyouking112 小时前
深入理解 HTML `<label>` 的 `for` 属性:提升表单可访问性与用户体验
前端·html·ux
软件技术NINI2 小时前
html css js网页制作成品——饮料官网html+css+js 4页网页设计(4页)附源码
javascript·css·html