现今的 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、打开后就可以看到实现后的效果了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)