一行JS实现滚动到页面某个元素所在位置(类似JQ ScrollTo插件)

在实现滚动到页面指定位置时一般使用的都是JQuery的ScrollTo插件( 具体可见:ScrollTo:平滑滚动到页面指定位置 )

但是我们也可以使用几行原生js实现此功能:

打开此页面:http://www.runoob.com/try/try.php?filename=tryjsref_html_blur

那么在输入这几行代码就可以啦:

<!DOCTYPE HTML>
<html>
<head> 
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
</head>
<body>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div id="greenid" style="height:200px;width:300px;background-color:green;margin:20px" tabindex="4"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<div style="height:200px;width:300px;background-color:red;margin:20px"></div>
<a href="http://www.runoob.com//" tabindex="2"> runoob.com 菜鸟教程</a><br />
<a id="focusid" href="http://www.google.com/" tabindex="1">Google</a><br />
<a href="http://www.microsoft.com/" tabindex="3">Microsoft</a>

</body>
<script>
document.querySelector('#greenid').focus();
//document.querySelector('#focusid').focus();
</script>

原理:利用tabindex和focus,因为focus只能聚焦在input,button,a之类可聚焦的标签上,所以要给div加上tabindex使其可以被focus。

注意:如果元素已经被focus了那么再次focus不会触发滚动条滚动至此元素,记得在再次触发滚动到此focus元素之前先blur即可(demo是两个元素来回focus所以不存在这个问题)。

 

转载于:https://www.cnblogs.com/jimaww/p/10007433.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值