js滚动到指定元素
<style>button{ position: fixed; bottom: 0; right: 0;}</style><button id="button">click to see</button><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>2</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>3</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><a id="ele" href="#">see me</a><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>3</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>4</p><p>1</p><p>1</p><script>var button = document.getElementsByTagName('button')[0]button.onclick = function(){ clickToSee('ele') }function clickToSee(id,time = 1){ var c_top = document.body.scrollTop var ele = document.getElementById(id) var e_top = ele.offsetTop var diff = e_top - c_top var step = diff/100 time = time/100*1000 var o_flag if(diff>0){ o_flag = true }else{ o_flag = false } var timer = setInterval(function(){ var c_flag diff -= step window.scrollBy(0,step) if(diff>0){ c_flag = true }else{ c_flag = false } if(!o_flag === c_flag){ clearInterval(timer) } console.log(diff) },time)}</script>
效果:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。