JS实现一键回顶功能示例代码


Posted in Javascript onOctober 28, 2013

1.基础准备:

scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置。

scroll top offset 指的是滚动条相对于其顶部的偏移。

如果该方法未设置参数,则返回以像素计的相对滚动条顶部的偏移。

语法

$(selector).scrollTop(offset)

2.

toggleClass() 对设置或移除被选元素的一个或多个类进行切换。

例如对设置和移除所有 <p> 元素的 "main" 类进行切换:

$("button").click(function(){ 
$("p").toggleClass("main"); 
});

3.

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

4.

scrollTo() 方法可把内容滚动到指定的坐标。

scrollTo(xpos,ypos)

参数 描述
xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。
ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。

由此的一段实现一键向上的代码如下:

var topbtn = $("#totop"); 想要一键向上的按钮元素 
var lastScroll = 0; 
topbtn.css("display", "none"); window.onscroll = function(){ onscroll貌似为html5的属性 
var top = $(window).scrollTop();初始均为0

if(top > 0){ 
topbtn.css("display", ""); 
} 
if(top == 0){若为起始状态,则不显示向上图标 
topbtn.css("display", "none"); 
} 
}; topbtn.click(function(){ 点击事件 
var scrollTop = 0; 
var curPos = $(window).scrollTop();现在滚动条的位置 
topbtn.addClass("movingtotop"); 运动中显示另外的图片 
var step = Math.abs(scrollTop - curPos) / 200 ; 
var tid = setInterval(function() {不断调用,帧动成画 
topbtn.toggleClass("movingtotop"); 精妙的一段代码,用元素属性的设置和删除交替,使得有动态感闪烁效果 
if (curPos > scrollTop + 14) { 
curPos -= step; 
step = step * 1.05;速度逐步加快 
window.scrollTo(0, curPos); 
} else if (curPos <= scrollTop + 14){直接跳到起始位置 
window.scrollTo(0, scrollTop); 
topbtn.removeClass("movingtotop"); 
clearInterval(tid); 关闭循环 
} 
}, 0.01); 
});
Javascript 相关文章推荐
JavaScript RegExp方法获取地址栏参数(面向对象)
Mar 10 Javascript
判断脚本加载是否完成的方法
May 26 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
Feb 28 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
小程序获取周围IBeacon设备的方法
Oct 31 Javascript
node.js域名解析实现方法详解
Nov 05 Javascript
简单的js表单验证函数
Oct 28 #Javascript
自己写的Javascript计算时间差函数
Oct 28 #Javascript
Textarea根据内容自适应高度
Oct 28 #Javascript
将json当数据库一样操作的javascript lib
Oct 28 #Javascript
一个JavaScript变量声明的知识点
Oct 28 #Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 #Javascript
javascript中简单的进制转换代码实例
Oct 26 #Javascript
You might like
php在window iis的莫名问题的测试方法
2013/05/14 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
微信小程序实现多行文字滚动
2020/11/18 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python的debug实用工具 pdb详解
2019/07/12 Python
django的csrf实现过程详解
2019/07/26 Python
python多线程扫描端口(线程池)
2019/09/04 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
永远跟党走演讲稿
2014/09/12 职场文书
车间主任岗位职责
2015/02/03 职场文书
特此通知格式
2015/04/27 职场文书
2016高考感言
2015/08/01 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Nginx源码编译安装过程记录
2021/11/17 Servers
利用 JavaScript 构建命令行应用
2021/11/17 Javascript