javascript实现博客园页面右下角返回顶部按钮
博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角。点击后页面置顶。后面想想写一个Demo来实现这种效果吧。
一.图标右下角固定.
1.SS里面提供了4中布局方式.其中fixed表示绝对定位元素。所以我们选择使用fixed来实现图标固定.
生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。 元素的位置通过"left","top","right"以及"bottom"属性进行规定。 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过"left","top","right"以及"bottom"属性进行规定。 生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20"会向元素的LEFT位置添加20像素。
absolute
fixed
relative
static
默认值。没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)。
inherit
规定应该从父元素继承position属性的值。
2.定代码如下。Button按钮将始终置于屏幕右下角。不论是拖动上下精度条还是拉伸浏览器窗口大小.
#myTopBtn{ bottom:5px; right:5px; position:fixed; }
二.实现点击后回到页面最上角.
1.要想回到屏幕最上角就得小了解如何通过JavaScript还操作拖动条的上下移动.JavaScript提供了scrollby和scroll方法.
window.scrollBy(0,-30) //屏幕上移30像素点 window.scroll(0,0)//屏幕回到最上角
2.上面已经提到了如何移动拖动条,那么如何实现按照一定的速度移动到page页顶部呢。那么就要借助setInterval和clearInterval方法.实现没10毫秒屏幕上移30个像素点。
<body> <divid="myDiv"> </div> <buttonid="myTopBtn"onclick="TopFunc()">ToTop</button> </body>
varmyVar; functionTopFunc(){ myVar=setInterval(EachScrollBy,10); }
functionEachScrollBy(eachHeight){ if(document.documentElement.scrollTop<=0){ clearInterval(myVar); }else{ window.scrollBy(0,-30); } }