div 元素内容超出可通过鼠标滚轮实现横向滚动
移动端中的元素内容超出时,对容器设置overflow-x: auto就可以通过手势水平移动。但是 PC 端只能通过鼠标滚轮上下滑动,而不能水平移动。
只需要给元素添加一个监听鼠标滚轮事件,上下滑动时修改其 scrollLeft 属性值就可以实现。直接贴上代码:
<div class="horizontal-slip-el">
<div class="child-el">首页</div>
<div class="child-el">日记</div>
<div class="child-el">随笔</div>
<div class="child-el">标签</div>
<div class="child-el">管理</div>
<div class="child-el">说说</div>
</div>
.horizontal-slip-el {
display: flex;
align-items: center;
justify-content: space-between;
align-content: center;
flex-direction: row;
flex-wrap: nowrap;
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
width: 300px;
padding: 10px;
}
.child-el {
padding: 10px;
margin: 0 10px;
width: 80px;
border-radius: 6px;
border: 1px solid #cccccc;
}
$(".horizontal-slip-el").on("mousewheel", e => {
let scrollLeft = e.delegateTarget.scrollLeft;
let scrollWidth = e.delegateTarget.scrollWidth - e.delegateTarget.offsetWidth;
if (e.originalEvent.deltaY < 0) {
if (scrollLeft >= 0) {
scrollLeft -= 20;
$(e.delegateTarget).animate({ scrollLeft }, 40, "linear");
}
} else {
if (scrollLeft <= scrollWidth) {
scrollLeft += 20;
$(e.delegateTarget).animate({ scrollLeft }, 40, "linear");
}
}
});
最主要的就是获得鼠标滚轮事件中的 delegateTarget 对象和 originalEvent 对象。delegateTarget 就是触发滚动事件的元素。元素不溢出的宽度是 scrollWidth,不溢出的内容宽度和溢出的内容宽度一共是 offsetWidth。scrollWidth - offsetWidth = maxWidth,最多只能把 scrollLeft +=到 maxWidth。
originalEvent 有一些属性可以判断滚轮到底是朝着哪个方向滑动。其中 deltaY 小于 0 代表朝上滑动,反之朝下滑动。

div 元素内容超出可通过鼠标滚轮实现横向滚动的更多相关文章
- javaScript判断鼠标滚轮的上下滚动
分享一个js实现判断鼠标滚轮的上下滚动: <script type="text/javascript"> var scrollFunc = function (e) { ...
- JS 判断鼠标滚轮的上下滚动
JS 判断鼠标滚轮的上下滚动 <script type="text/javascript"> var scrollFunc = function (e) { e = ...
- div中内容超出自动换行
下面以table中td的内容超出为例说明: 首先: td { display: block; } 然后:给td设置css样式: 1. td { word-wrap: break-word; } 2. ...
- 关于如何用Jquery监听鼠标滚轮改变横向滚动条
$(function(){ if ((navigator.userAgent.indexOf('MSIE') >= 0)){/*判断是否是IE浏览器*/ var scroll_width = 1 ...
- 鼠标滚轮事件MouseWheel
其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...
- JS如何判断鼠标滚轮向上还是向下滚动
前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...
- 当div元素内的内容超出其宽度时,自动隐藏超出的内容
word-break:keep-all;/* 不换行 */ white-space:nowrap;/* 不换行 */ overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */ te ...
- 几个简单的css设置问题:div居中,ul li不换行 ,内容超出自动变省略号等
1 div在页面居中的问题 1)position值为relative时(相对定位),css设置属性margin:0 auto;(0 auto,表示上下边界为0,左右则根据宽度自适应相同值,即居中)即 ...
- DIV内容超出固定宽度部分用省略号代替
方法一:CSS控制溢出文本 只针对DIV单行数据展示 /** DIV文本超出宽度部分用...替换,鼠标移上显示全部 **/ .textAuto{overflow:hidden;text-overfl ...
- html内容超出了div的宽度如何换行让内容自动换行
在显示评论列表的时候因为有固定宽,但是显示的内容超出的了div的宽,在这种情况下我们需要将其换行,实现的css代码如下 在工作中评论内容测试遇到评论着的评论内容为:"dddddddddd ...
随机推荐
- 【Java进阶】五分钟快速掌握JVM优化概念、常用命令、工具、JUC、多线程、GC等知识
〇.概述 (一)资料 史上最全最详细的JVM优化方案:http://www.360doc.com/content/22/0513/10/34195792_1031121509.shtml (二)内容概 ...
- 云原生 • Kubernetes 认识 k8s、k8s 架构、核心概念点介绍
云原生 • Kubernetes 认识 k8s.k8s 架构.核心概念点介绍 一.Kubernetes 简介Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌.谷歌早在十几年之 ...
- Cannot resolve module 'net' in stompjs
解决方案1 stompjs 不支持客户端环境下运行需要作为开发依赖安装 npm install stompjs --save 解决方案2 webpack.config.js 增加这段 resolve: ...
- PHP 视频源文件加密方案
先说下原理:因为视频是付费的,肯定需要作视频加密处理. 加密可实现的方式:修改视频字节流,只能替换字节流,例如头100-1024字节进行加密,源文件就无法打开了. 下面上代码吧,加解密是 openss ...
- 金融科技 DevOps 的最佳实践
随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值.DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进.而对于金融科技( ...
- JavaScript:函数:函数的参数
声明函数的时候,有个括号,这里面可以加上函数的参数,这些参数,我们叫做形参(形式参数): 此时这些参数,也是已经声明了的变量,只是还没有赋值而已. 也可以不加,取决于函数的逻辑.如果函数需要从外部传进 ...
- JavaScript:是一种什么样的编程语言?
有关JavaScript的发展历程,百度百科上已经说得很清楚了,这里不赘述,只是想谈一下我刚刚接触JS的一些感触. 作为后端java开发者,初次学习JS的时候,真的觉得JS非常的不严谨,很混乱.由于它 ...
- conan环境安装
环境 安装conan 使用conan 搜索包 导入包 编译 打包项目 准备源码 编译成conan包 环境 ubuntu:bionic的docker image docker run -it ubunt ...
- 为什么NoSQL数据库这么受欢迎?
大数据时代,NoSQL数据库是企业构建数据能力的核心工具之一.近期,在2022腾讯全球数字生态大会NoSQL数据库专场上,腾讯云发布了多项NoSQL产品能力升级,并重点讲解了其背后的自研技术要点及实现 ...
- 【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤
问题描述 在使用Azure Cloud Service(云服务),默认的情况下都是使用的 HTTP 服务,通过 Visual Studio 2022 创建的默认 Cloud Service项目中,在S ...