
window.onscroll = function() {
//为了保证兼容性,这里取两个值,哪个有值取哪一个
//scrollTop就是触发滚轮事件时滚轮的高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
console.log(“滚动距离” + scrollTop)
}
二、Jquery通过$(window).scroll()监听
$(window).scroll(function() {
//为了保证兼容性,这里取两个值,哪个有值取哪一个
//scrollTop就是触发滚轮事件时滚轮的高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
console.log(“滚动距离” + scrollTop)
})
将页面滚动到指定位置
主要使用的是锚点技术,锚点元素通过scrollTop值改变进行定位。
锚点
锚点是网页制作中超级链接的一种,又叫命名锚记。命名锚记像一个迅速定位器一样,是一种页面内的超级链接。
法一 直接使用scrollTop
使用scrollTop方法,x为滚轮的高度
$(“body,html”).scrollTop(x)
加动画的滚动
// 滚动到指定位置
$(‘html, body’).animate({
scrollTop: $("#div1").offset().top
}, 2000)
// 滚动到顶部,指定距顶部的距离
$(’.scroll_top’).click(function(){
$(‘html,body’).animate({
scrollTop: ‘0px’
}, 800)
})
方法二 利用hash
hash
hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。
location.hash=anchorname。
例如:以下地址的hash为#hot
http://this.summer.io/is/#hot // location.hash → #hot
以下函数将页面定位到title元素
function aa(){
window.location.hash = “#title”
}
方法三 直接使用超链接锚点
点击a标签页面将会定位到anchor1元素
之前在项目中使用vue-cli scrollTop开发过 网站右侧楼层导航效果折腾小记 ,现在测试说有一个bug,那会就是有些页面一直报错
经过筛查发现是scroll报的错,发现即使在某些页面为没有使用组件,也会抱着个错,于是就开始研究,发现
window.addEventListener("scroll", this.myScroll)是基于 windos 对象的,所以在整个项目都会监听,最后想到vue的一个生命周期 destroyed ,那就是在组件销毁时也取消 removeEventListener 监听,这样就好了。
多多折腾,多多学习。有什么不对的地方,评论区评论。大家一块进步。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)