最近工作遇到的问题,用vue写的,有一个锚点的效果,刚刚开始用的是锚点做的,效果做的不是很好,主要是因为,锚点切换,我不能监控锚点的变化,从而修改我的tab切换栏的样式。超级简单的问题,一时间没有想到,真郁闷
刚开始的时候,用offsetTop,但是滚动打的时候,offsetTop的值一直木有变化,我还以为是offsetTop我用错了,查了一些资料,才知道把这个属性理解错了。发现自己的思路也有些问题,后来就换了一种方法。以后记好了。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>锚点</title>
<style>
#container{
width: 100%;
height: 2000px;
}
#box1,#box2{
width: 100%;
height: 500px;
background: green;
}
#box2{
background: yellow;
}
#header{
position: fixed;
top:0px;
width: 100%;
height: 200px;
border:1px solid red;
}
</style>
</head>
<body>
<div id="header"><input type="button" id=‘handleClick‘ value=‘click‘></div>
<div id="container">
<div id="box1"></div>
<div id="box2"> </div>
</div>
<script>
document.getElementById(‘handleClick‘).onclick=function(){
var box1 = document.getElementById(‘box1‘).offsetHeight;
animation(box1);
}
function animation(target){
var timer=setInterval(a,30);
function a(){
var speed =Math.ceil((target - document.body.scrollTop)/3);
if(document.body.scrollTop >= target){
clearInterval(timer);
}else{
document.body.scrollTop = document.body.scrollTop + speed;
}
}
}
</script>
</body>
</html>
原文:http://www.cnblogs.com/xmhu/p/6272064.html