javascript实现博客园页面右下角返回顶部按钮


Posted in Javascript onFebruary 22, 2015

博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角。点击后页面置顶。后面想想写一个Demo来实现这种效果吧。

     一. 图标右下角固定.

  1.SS 里面提供了4中布局方式. 其中fixed表示绝对定位元素。所以我们选择使用fixed来实现图标固定.

absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
relative 生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
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>

  <div id="myDiv" >

  </div>

  <button id="myTopBtn" onclick="TopFunc()">To Top</button>

</body>
 
var myVar;

    function TopFunc(){

        myVar=setInterval(EachScrollBy,10);    

    }
    function EachScrollBy(eachHeight){

        if(document.documentElement.scrollTop<=0){

            clearInterval(myVar);

        }else{

            window.scrollBy(0,-30);

        }

    }

        三. 扩展

实现了置顶按钮。那么我们如何实现点击按钮屏幕置底呢.其实原理差不多,这里就不写demo了。给大家提供一些属性做参考.

      网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight

网页可见区域宽:document.body.offsetWidth (包括边线的宽)

网页可见区域高:document.body.offsetHeight (包括边线的宽)

网页正文全文宽:document.body.scrollWidth

网页正文全文高:document.body.scrollHeight

网页被卷去的高:document.body.scrollTop

网页被卷去的左:document.body.scrollLeft

网页正文部分上:window.screenTop

网页正文部分左:window.screenLeft

屏幕分辨率的高:window.screen.height

屏幕分辨率的宽:window.screen.width

屏幕可用工作区高度:window.screen.availHeight

屏幕可用工作区宽度:window.screen.availWidth

以上就是本文的全部内容了,希望爱玩博客的童鞋们喜欢。

Javascript 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
用jquery修复在iframe下的页面锚点失效问题
Aug 22 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
Jul 01 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
JS实现数组按升序及降序排列的方法
Apr 26 Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
基于Vue CSR的微前端实现方案实践
May 27 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 #Javascript
js实现图片和链接文字同步切换特效的方法
Feb 20 #Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 #Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 #Javascript
jQuery常用数据处理方法小结
Feb 20 #Javascript
jQuery数据缓存用法分析
Feb 20 #Javascript
jQuery性能优化技巧分析
Feb 20 #Javascript
You might like
php随机显示图片的简单示例
2014/02/15 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
php格式化日期实例分析
2014/11/12 PHP
php连接mysql数据库
2017/03/21 PHP
潜说js对象和数组
2011/05/25 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
Webpack path与publicPath的区别详解
2018/05/03 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
2014年端午节活动方案
2014/03/11 职场文书
专业技术职务聘任书
2014/03/29 职场文书
委托书范文
2014/04/02 职场文书
法制主题班会教案
2015/08/13 职场文书
高一军训口号
2015/12/25 职场文书
初中数学教学反思范文
2016/02/17 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Python标准库pathlib操作目录和文件
2021/11/20 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS