js简单的点击返回顶部效果实现方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js简单的点击返回顶部效果实现方法。分享给大家供大家参考。具体分析如下:

当页面特别长的时候,用户想回到页面顶部,必须得滚动好几次滚动键才能回到顶部,如果在页面右下角有个“返回顶部”的按钮,用户点击一下,就可以回到顶部,对于用户来说,是一个比较好的体验。

实现原理:当页面加载的时候,把元素定位到页面的右下角,当页面滚动时,元素一直位于右下角,当用户点击的时候,页面回到顶部。

要点一:document.documentElement.clientWidth || document.body.clientWidth; 获得可视区的宽度。后面是兼容chrome,前面是兼容其它浏览器。

要点二:oTop.style.left = screenw - oTop.offsetWidth +"px";  当页面加载时,让元素的位置位于页面最右边,用可视区的宽度减去元素本身的宽度。

要点三:oTop.style.top = screenh - oTop.offsetHeight + scrolltop +"px"; 当页面滚动时,元素的Y坐标位置等于可视区的高度减去元素本身的高度,加上滚动距离。

要点四:document.documentElement.scrollTop = document.body.scrollTop =0; 当点击元素时,让页面的滚动距离为0.写两个是为了兼容。
 
上代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>无标题文档</title>
<style>
body{margin:0; padding:0}
#to_top{width:30px; height:40px; padding:20px; font:14px/20px arial; text-align:center; background:#06c; position:absolute; cursor:pointer; color:#fff}
</style>
<script>
window.onload = function(){
 var oTop = document.getElementById("to_top");
 var screenw = document.documentElement.clientWidth || document.body.clientWidth;
 var screenh = document.documentElement.clientHeight || document.body.clientHeight;
 oTop.style.left = screenw - oTop.offsetWidth +"px";
 oTop.style.top = screenh - oTop.offsetHeight + "px";
 window.onscroll = function(){
  var scrolltop = document.documentElement.scrollTop || document.body.scrollTop;
  oTop.style.top = screenh - oTop.offsetHeight + scrolltop +"px";
 }
 oTop.onclick = function(){
  document.documentElement.scrollTop = document.body.scrollTop =0;
 }
} 
</script>
</head>
<body style="height:1000px;">
<h1>返回顶部</h1>
<div id="to_top">返回顶部</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
基于逻辑运算的简单权限系统(实现) JS 版
Mar 24 Javascript
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
js快速排序的实现代码
Dec 08 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
Jun 01 Javascript
js中跨域方法原理详解
Jul 19 Javascript
浅析JS运动
Dec 28 Javascript
AngularJs解决跨域问题案例详解(简单方法)
May 19 Javascript
JS获取子窗口中返回的数据实现方法
May 28 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
webpack@v4升级踩坑(小结)
Oct 08 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 #Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 #Javascript
JavaScript 变量、作用域及内存
Apr 08 #Javascript
JavaScript Function函数类型介绍
Apr 08 #Javascript
JavaScript 模块化编程(笔记)
Apr 08 #Javascript
JavaScript DOM事件(笔记)
Apr 08 #Javascript
javascript笛卡尔积算法实现方法
Apr 08 #Javascript
You might like
php Rename 更改文件、文件夹名称
2011/05/24 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
PHP分享图片的生成方法
2018/04/25 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
jquery中的过滤操作详细解析
2013/12/02 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python基础梳理(一)(推荐)
2019/04/06 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
python实现简单飞行棋
2020/02/06 Python
Python如何读取、写入JSON数据
2020/07/28 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
街道务虚会发言材料
2014/10/20 职场文书
会议通知格式范文
2015/04/15 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
Python Matplotlib绘制动画的代码详解
2022/05/30 Python