移动端中的元素内容超出时,对容器设置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 元素内容超出可通过鼠标滚轮实现横向滚动的更多相关文章

  1. javaScript判断鼠标滚轮的上下滚动

    分享一个js实现判断鼠标滚轮的上下滚动: <script type="text/javascript"> var scrollFunc = function (e) { ...

  2. JS 判断鼠标滚轮的上下滚动

    JS 判断鼠标滚轮的上下滚动   <script type="text/javascript"> var scrollFunc = function (e) { e = ...

  3. div中内容超出自动换行

    下面以table中td的内容超出为例说明: 首先: td { display: block; } 然后:给td设置css样式: 1.  td { word-wrap: break-word; } 2. ...

  4. 关于如何用Jquery监听鼠标滚轮改变横向滚动条

    $(function(){ if ((navigator.userAgent.indexOf('MSIE') >= 0)){/*判断是否是IE浏览器*/ var scroll_width = 1 ...

  5. 鼠标滚轮事件MouseWheel

    其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...

  6. JS如何判断鼠标滚轮向上还是向下滚动

    前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...

  7. 当div元素内的内容超出其宽度时,自动隐藏超出的内容

    word-break:keep-all;/* 不换行 */ white-space:nowrap;/* 不换行 */ overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */ te ...

  8. 几个简单的css设置问题:div居中,ul li不换行 ,内容超出自动变省略号等

    1  div在页面居中的问题 1)position值为relative时(相对定位),css设置属性margin:0 auto;(0 auto,表示上下边界为0,左右则根据宽度自适应相同值,即居中)即 ...

  9. DIV内容超出固定宽度部分用省略号代替

    方法一:CSS控制溢出文本  只针对DIV单行数据展示 /** DIV文本超出宽度部分用...替换,鼠标移上显示全部 **/ .textAuto{overflow:hidden;text-overfl ...

  10. html内容超出了div的宽度如何换行让内容自动换行

    在显示评论列表的时候因为有固定宽,但是显示的内容超出的了div的宽,在这种情况下我们需要将其换行,实现的css代码如下   在工作中评论内容测试遇到评论着的评论内容为:"dddddddddd ...

随机推荐

  1. 【软考-中级-其他】03、NoSQL和云计算

    其他 NoSQL概述 分类 文档存储数据库:MongoDB 采用BSON格式完成存储数据和网络数据交换 BSON格式:JSON的二进制编码格式 逻辑结构包括:数据库.集合(相当于关系数据库的表).文档 ...

  2. 【Spark】Day04-Spark Streaming:与离线批量比较、架构特点、入门案例、创建(队列、数据源)、转换(有状态、无状态)、输出方式、进阶(累加、转换为DF、缓存持久化)、实战(窗口统计)

    一.概述 1.离线和实时计算 离线:数据量大,数据不会变化,MapReduce 实时:数据量小,计算过程要短 2.批量和流式处理 批量:冷数据,数据量大,速度慢 流:在线.实时产生的数据(快速持续到达 ...

  3. 【大数据面试】【框架】Flume:Source的断点续传、重复数据、Channel选择

    〇.用途 流式结构 获取磁盘日志,拦截器过滤后,传递指定数据,写入HDFS或kafka 一.组成-Source.Channel.Sink 事务(put/take) 1.Source---taildir ...

  4. MySQL视图-触发器

    目录 一:视图 1.什么是视图? 2.为什么要用视图? 3.如何使用视图 4.反复拼接的繁琐(引入视图的作用) 5.解决方法 二:视图的应用 1.创建视图的格式: 2.查询视图层 3.查询Navica ...

  5. 五年经验的前端社招被问:CPU 和 GPU 到底有啥区别?

    首先来看 CPU 和 GPU 的百科解释: CPU(Central ProcessingUnit,中央处理器):功能主要是解释计算机指令以及处理计算机软件中的数据 GPU(Graphics Proce ...

  6. Effective C++试读笔记

    Part1 习惯C++ 1. 视C++为一个语言联邦 C++非常的屌,除了开发效率和编译效率不高,其他的都非常屌 C++ 可以视为一系列的语言联邦构成的紧密结合体,分为以下四个部分 C 2.C wit ...

  7. ClickHouse MergeTree引擎

    Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎. MergeTree 系列的引擎被设计用于插入极大量的数据到一张表当中.数据 ...

  8. kali安装拼音输入法

    前言 最近使用kali感觉没个中文输入法的很不方便,于是决定装个ibus的拼音输入法 安装方法 1.安装ibus 使用命令apt install ibus ibus-pinyin,注意使用root权限 ...

  9. ClickHouse数据副本引擎

    我的gitee地址:https://gitee.com/ddxygq/bigdata-technical-pai ,相关文章都放到这个仓库里了. 只有 MergeTree 系列里的表可支持副本: Re ...

  10. DVWA靶场实战(七)——SQL Injection

    DVWA靶场实战(七) 七.SQL Injection: 1.漏洞原理: SQL Inject中文叫做SQL注入,是发生在web端的安全漏洞,主要是实现非法操作,例如欺骗服务器执行非法查询,他的危害在 ...