1.基础准备:
scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置。
scroll top offset 指的是滚动条相对于其顶部的偏移。
如果该方法未设置参数,则返回以像素计的相对滚动条顶部的偏移。
语法
$(selector).scrollTop(offset)
2.
toggleClass() 对设置或移除被选元素的一个或多个类进行切换。
例如对设置和移除所有
元素的 "main" 类进行切换:
$("button").click(function(){
$("p").toggleClass("main");
});
3.
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
4.
scrollTo() 方法可把内容滚动到指定的坐标。
scrollTo(xpos,ypos)
参数 描述
xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。
ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。
由此的一段实现一键向上的代码如下:
var topbtn = $("#totop"); 想要一键向上的按钮元素
var lastScroll = 0;
topbtn.css("display", "none");
window.onscroll = function(){ onscroll貌似为html5的属性
var top = $(window).scrollTop();初始均为0
if(top > 0){
topbtn.css("display", "");
}
if(top == 0){若为起始状态,则不显示向上图标
topbtn.css("display", "none");
}
};
topbtn.click(function(){ 点击事件
var scrollTop = 0;
var curPos = $(window).scrollTop();现在滚动条的位置
topbtn.addClass("movingtotop"); 运动中显示另外的图片
var step = Math.abs(scrollTop - curPos) / 200 ;
var tid = setInterval(function() {不断调用,帧动成画
topbtn.toggleClass("movingtotop"); 精妙的一段代码,用元素属性的设置和删除交替,使得有动态感闪烁效果
if (curPos > scrollTop + 14) {
curPos -= step;
step = step * 1.05;速度逐步加快
window.scrollTo(0, curPos);
} else if (curPos window.scrollTo(0, scrollTop);
topbtn.removeClass("movingtotop");
clearInterval(tid); 关闭循环
}
}, 0.01);
});
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn