博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
仿新浪微博返回顶部的js实现(jQuery/MooTools)
阅读量:7259 次
发布时间:2019-06-29

本文共 2609 字,大约阅读时间需要 8 分钟。

 一、引言

  在web页面中,如果页面较高,为了方便用户快速地返回顶部,都会添加一个返回顶部按钮。例如:

2011042518545862.jpg
2011042518551160.jpg
2011042518552111.jpg

  其中淘宝网的是要滚动条的滚动距离大于某一段距离才显示返回顶部按钮;人人网的返回顶部直接在底部的工具条上;新浪微博的返回顶部在滚动高度大于0的时候显示,且返回顶部的效果是平滑动画效果。本文的实现就是类似于新浪微博的这种效果。//zxx:新浪微博今天启用新域名weibo.com了

  二、jQuery下的返回顶部功能

  可以看到,如果页面有滚动高度,右下角就会有一个含有返回顶部字样的黑色背景半透明的小条条,如下图所示:

demo页面效果截图 张鑫旭-鑫空间-鑫生活

  点击这里返回顶部字样的按钮后,页面就像是抹了润滑剂一样,倏地一声就滑到顶部了,同时,该点击按钮也玩起了躲猫猫 – 不见了。

  实现的原理嘛,恩……估计鲜有人关心,所以我也懒得浪费口水了,直接上代码。

  无论是这里的jQuery实现还是MooTools实现,下面的CSS代码都是一致的,如下:

 
.backToTop {
display: none;
width: 18px;
line
-
height:
1.2
;
padding: 5px
0
;
background
-
color: #
000
;
color: #fff;
font
-
size: 12px;
text
-
align: center;
position: fixed;
_position: absolute;
right: 10px;
bottom: 100px;
_bottom:
"
auto
"
;
cursor: pointer;
opacity: .
6
;
filter: Alpha(opacity
=
60
);
}

  js相关代码如下:

 
(
function
() {
var
$backToTopTxt
=
"
返回顶部
"
, $backToTopEle
=
$(
'
<div class="backToTop"></div>
'
).appendTo($(
"
body
"
))
.text($backToTopTxt).attr(
"
title
"
, $backToTopTxt).click(
function
() {
$(
"
html, body
"
).animate({ scrollTop:
0
},
120
);
}), $backToTopFun
=
function
() {
var
st
=
$(document).scrollTop(), winh
=
$(window).height();
(st
>
0
)
?
$backToTopEle.show(): $backToTopEle.hide();
//
IE6下的定位
if
(
!
window.XMLHttpRequest) {
$backToTopEle.css(
"
top
"
, st
+
winh
-
166
);
}
};
$(window).bind(
"
scroll
"
, $backToTopFun);
$(
function
() { $backToTopFun(); });
})();

  寥寥十几行代码就实现了全部的交互细节了。您可以将上面代码直接拷贝到您的JavaScript文件中,页面就有效果啦!对了,请使用jQuery 1.4+。

  三、MooTools下返回顶部功能实现

  demo页面的效果与上面jQuery demo下效果基本一致。

  代码部分。CSS代码完全同上。JS代码如下:

 
(
function
() {
var
$backToTopTxt
=
"
返回顶部
"
, $backToTopEle
=
new
Element(
"
div
"
, {
"
class
"
:
"
backToTop
"
,
title: $backToTopTxt
}).set(
"
text
"
, $backToTopTxt).addEvent(
"
click
"
,
function
() {
var
st
=
document.getScroll().y, speed
=
st
/
6
;
var
funScroll
=
function
() {
st
-=
speed;
if
(st
<=
0
) { st
=
0
; }
window.scrollTo(
0
, st);
if
(st
>
0
) { setTimeout(funScroll,
20
); }
};
funScroll();
}).inject(document.body), $backToTopFun
=
function
() {
var
st
=
document.getScroll().y, winh
=
window.getSize().y;
(st
>
0
)
?
$backToTopEle.setStyle(
"
display
"
,
"
block
"
): $backToTopEle.setStyle(
"
display
"
,
"
none
"
);
//
IE6下的定位
if
(
!
window.XMLHttpRequest) {
$backToTopEle.setStyle(
"
top
"
, st
+
winh
-
166
);
}
};
window.addEvents({
scroll: $backToTopFun,
domready: $backToTopFun
});
})();

  直接拷贝上面的代码在您的JS代码中就轻松实现效果啦。

  MooTools的动画方法Fx不支持滚动,要实现滚动条的平滑滚动效果需要使用Fx.Scroll插件。但是,显然, 这里的简单功能没有必要再使用额外的插件,所以直接设置了个定时器实现了平滑滚动效果。

  注:demo页面中的美女图片作用是撑开页面高度使产生滚动条。

  四、结语

  其实实现页面返回顶部效果最简单的就是a标签然后href属性值直接就是#锚点就ok了。但是这种方法会在url地址后面产生一个#。

转载于:https://www.cnblogs.com/Slxj/archive/2011/05/01/2034109.html

你可能感兴趣的文章
绿盟科技Techworld 2017网络安全智能化 机器学习成亮点
查看>>
摩托罗拉系统完成对Kodiak Networks收购
查看>>
美国网络监听系统曝光:服务器遍布世界
查看>>
数据加密,国际软件标准,零封全球黑客,书生云20年庆典上的看点解密
查看>>
如何在Windows 10下轻松开启RS2 UWP版文件资源管理器
查看>>
100行C代码终端打印树形结构
查看>>
谈谈HPC可否掀起下一轮技术热潮
查看>>
JS属性特性(属性描述符)
查看>>
Java数组一定要初始化才能使用吗?
查看>>
精益求精的代码却被带漏洞组件毁于一旦
查看>>
如何正确的阅读源代码?
查看>>
剖析APT攻击 绿盟NGTP构建下一代防御体系
查看>>
关于写异步代码测试用例的一些思考
查看>>
JavaScript 各种遍历方式详解
查看>>
斯诺登:我们需要共同让监视再回昂贵时代
查看>>
红星Linux操作系统的大部分代码处于被管控的状态
查看>>
大数据驱动社会治理的创新转向
查看>>
防骚扰诈骗的重要技术是依靠大数据?
查看>>
阳光电源西藏安装20MW太阳能光伏储能微电网电站
查看>>
首个获FDA批准的AI辅助心脏成像系统,是如何诞生的?
查看>>