【发布时间】:2019-09-22 03:49:36
【问题描述】:
(请看最后的图片)我的网站上有一个text <div>,但是它不是全宽的。我的文档的<body> 不滚动。当用户使用鼠标滚轮滚动时,我只需要 text <div> 滚动,但是,鼠标指针不在我的 text <div> 上。为此,我找到了一些 jQuery 代码。我在document.onload 上运行这个<script>:
考虑到我的text <div> 的class 是.scroll,以下代码有效:
var target = $('.scroll').get(0);
$('body').on('wheel', function (e)
{
var o = e.originalEvent;
target.scrollTop += o.deltaY;
target.scrollLeft += o.deltaX;
});
所以,我的问题是,我需要为手机或触控设备添加相同的功能。即使用户在我的text <div> 之外触摸和滚动,text <div> 也应该滚动。我在同一个 <script> 标记中尝试了这个,但是没有用:
$('body').on('touchmove', function(e)
{
var o2 = e.originalEvent;
target.scrollTop += o2.deltaY;
target.scrollLeft += o2.deltaX;
});
我也尝试将其 .on('tou... 更改为 .bind('tou...,均无效。控制台也是空的。但是,如果我在上面的代码中添加console.log('touched');(在关闭}); 之前,控制台确实会在其中显示touched。所以,它可能工作,但是,滚动不起作用。
有人可以指导我如何使这个东西适用于触摸屏吗?我也对其他基于 JavaScript 的方法持开放态度。
图片:
【问题讨论】:
-
你能做一个codepen或类似的吗? :)
-
@KevinSimper 在这里:jsfiddle.net/hrishikeshk/7ks5ztj8/6 抱歉耽搁了。
-
@RacilHilan 我现在尝试了
on('scroll',它不起作用,可能是因为<body>不滚动。 -
您的 jsfiddle 在浏览器中为我工作。你是哪个浏览器有问题?没关系
on('scroll',我没有仔细阅读你的问题。 -
@RacilHilan 是的,我提到正常鼠标滚动正在工作。我想在基于触摸的滚动上做同样的事情。我正在使用 Chrome 77。
标签: javascript jquery html