博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] JS 返回顶部
阅读量:6424 次
发布时间:2019-06-23

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

hot3.png

仿新浪微博返回顶部的js实现(jQuery/MooTools)

by from

本文地址:

一、引言

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

各网站返回顶部功能 张鑫旭-鑫空间-鑫生活
各网站返回顶部功能 张鑫旭-鑫空间-鑫生活
各网站返回顶部功能截图 张鑫旭-鑫空间-鑫生活

其中淘宝网的是要滚动条的滚动距离大于某一段距离才显示返回顶部按钮;人人网的返回顶部直接在底部的工具条上;新浪微博的返回顶部在滚动高度大于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 = $('
').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://my.oschina.net/cwzhang/blog/293971

你可能感兴趣的文章
【OGG】关于在一套复制环境中使用不同版本OGG的问题
查看>>
大咖丨交通运输部科学研究院:交通运输大数据的基础环境正日益成熟-清数•思享会...
查看>>
【中亦安图】导致Oracle性能抖动的参数提醒(4)
查看>>
jsp中forward和redirect的区别(转)
查看>>
TOUGHRADIUS 抛弃 AGPL,采用 Apache 协议
查看>>
《CUDA C编程权威指南》——3.4节避免分支分化
查看>>
《日志管理与分析权威指南》一2.2 日志的概念
查看>>
《Adobe After Effects CC 经典教程(彩色版)》——1.5 对合成图像做动画处理
查看>>
《数据结构与算法:Python语言描述》一1.3算法和算法分析
查看>>
python异步并发模块concurrent.futures简析
查看>>
【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(五)
查看>>
《ZooKeeper:分布式过程协同技术详解》——1.2 示例:主-从应用
查看>>
webview与js交互
查看>>
阿里云Redis集群子实例内存查看
查看>>
《JavaScript启示录》——1.6 从构造函数创建字面量值
查看>>
通过R让你的复杂网络图更具艺术感
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现》导读
查看>>
我们对人工智能的10大误解
查看>>
Qualitative and Quantitative
查看>>
Load高,CPU idle很高,这情况太诡异了
查看>>