十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、原生js通过window.onscroll监 听
创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达十年累计超上千家客户的网站建设总结了一套系统有效的营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都白乌鱼等企业,备受客户赞赏。
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
// location.hash → #hot
以下函数将页面定位到title元素
function aa(){
window.location.hash = “#title”;
}
方法三 直接使用超链接锚点
点击a标签页面将会定位到anchor1元素
可以声明一个变量,在触发事件的适合给变量复制,事件处理完后再赋另外值,滚动事件里面每次都去验证这个变量就可以 。
可以参考下这个异步加载的网页链接
1、jquery 监听页面滚动使用的方法:.scroll()。
2、新建一个HTML文档,定义body的高度。
3、创建JS脚本,使用.scroll() 方法监听页面滚动。
4、如果页面发生滚动,则执行函数,弹出一个hello。
5、保存文件,查看.scroll()监听页面滚动的效果。
1、新建一个html文件,命名为test.html。
2、在test.html文件内,使用div标签创建一个模块,并设置其id为mycss。
3、在css标签内,定义div的样式,设置其宽度为100px,高度为2000px,背景颜色为粉红色。
4、在js标签内,使用scroll()方法监听页面的滚动条,并执行function方法。
5、在function方法内,使用if语句判断,当前滚动的位置(scrollTop())是否到达页面的底部($(document).height()-$(window).height()),如果到达页面底部,提示“已经到底部了”。
语法: $(element). scrollTop() /$(element). scrollTop(val) ;
eg: 当匹配元素为当前页面,那么当前滚动条到整个页面顶端的距离:
var winPos =$(window). scrollTop ();
$(element). offset().top ; $(element). offset().left ;
$( window ). scroll (function(event){
});
你发的那个网站用的是 vue.js 中的 vue-router
JQuery有个平滑滚动插件 jquery-smooth-scroll 可以实现类似效果。