1.匀速动画封装
//animate封装
function animate(ele,target){
clearInterval(ele.timer);
var speed=target>ele.offsetLeft?10:-10;
ele.timer=setInterval(function(){
var val=target-ele.offsetLeft
ele.style.left=ele.offsetLeft+speed+"px";
if(Math.abs(val)<Math.abs(speed)){
ele.style.left=target+"px";
clearInterval(ele.timer);
}
},30);
}
2.缓慢动画封装
//缓动动画封装
function animate(ele,target){
clearInterval(ele.timer);
ele.timer=setInterval(function(){
var step=(target-ele.offsetTop)/10;
step=step>0?Math.ceil(step):Math.floor(step);
ele.style.top=ele.offsetTop+step+"px";
if(Math.abs(target-ele.offsetTop)<=Math.abs(step)){
ele.style.top=target+"px";
clearInterval(ele.timer);
}
},30)
}
3.封装scrollTop,返回json
//封装scrollTop
function scroll() { // 开始封装自己的scrollTop
if(window.pageYOffset != null) { // ie9+ 高版本浏览器
// 因为 window.pageYOffset 默认的是 0 所以这里需要判断
return {
left: window.pageXOffset,
top: window.pageYOffset
}
}
else if(document.compatMode === "CSS1Compat") { // 标准浏览器 来判断有没有声明DTD
return {
left: document.documentElement.scrollLeft,
top: document.documentElement.scrollTop
}
}
return { // 未声明 DTD
left: document.body.scrollLeft,
top: document.body.scrollTop
}
}
来源:CSDN
作者:zuo_zuo_blog
链接:https://blog.csdn.net/zuo_zuo_blog/article/details/103914135