难搞的滚动事件(滚动默认,scrollTop)

难搞的滚动事件(滚动默认,scrollTop),第1张

现今的 chrome 浏览器,为了实现丝滑顺畅地滑动,活动时间直接执行而不再检测默认事件,这使得无法用 e.preventDafult() 来阻止默认事件。

现在需要添加 {passive: false} 配置

$(document).addEventListener( 'scroll', fun, {passive: false} ) 把事件被动监听设置为 false 之后,就可以正常阻止默认事件了。

为了手动地使页面平滑滚动到某个高度,需要使用 $.animate({scrollTop: val}) 。由于不同浏览器间的差异,绑定 scrollTop 的 DOM 元素是不一样的,比如

为了解决这个差异,我们需要把 animate 同时绑定在两个节点上。 $('html, body').animate()

$().position() ———— 基于父元素,从自身的外边框为点。

$().offset() ———— 基于父元素,从自身内容为点。

$(window).height().width() ———— 获取窗口宽高。

因为使用的是监听 touchstar 和 touchend 方法,所以该方法只适用于移动端。

主要的思路就是监听“触摸开始”和“触摸结束”两个事件,分别获取事件当前的触摸点坐标和文档滚动的值,进行对比判断“触摸是否有滑动”以及“文档是否有滚动(到底)”,来执行需要的方法。下面说说几个注意点:

1、首先打开电脑上的记事本。

2、在记事本中写入如下代码:<html><head><body><marquee onMouseOver=this.stop() onMouseOut=this.start() scrollamount=1 scrolldelay=7 direction=up width=270 height=77>。

3、上面的代码是实现每行文字,1、2、3、4的自动在网页播放。

4、然后将文件名保存为:xxxx.html文件,既然是网页上展示就保存为.html的文件格式。

5、鼠标移动到这个网页文件上网,使用右键选择打开方式,选择浏览器打开。

6、打开后就可以看到实现后的效果了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11707779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存