zoukankan      html  css  js  c++  java
  • (转)返回顶部的js实现(jQuery/MooTools)

    一、引言

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

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

    二、jQuery下的返回顶部功能

    您可以狠狠地点击这里:jQuery下的返回顶部demo

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

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

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

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

    .backToTop {
        display: none;
         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下返回顶部功能实现

    您可以狠狠地点击这里:MooTools下的返回顶部demo

    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页面中的美女图片作用是撑开页面高度使产生滚动条。

    本文算是个实用小技术,内容不多,希望能对您的学习有所帮助。感谢阅读。

    转自张鑫旭-鑫空间-鑫生活

    原文地址:http://www.zhangxinxu.com/wordpress/?p=1576

  • 相关阅读:
    条形码:Code93
    MSSQL 又一个行列转换
    PowerShell查看Sharepoint日志
    SharePoint Meeting Workspace
    Developer Dashboard in SharePoint 2010
    SPUtility.SendEmail
    处理sharepoint 列表中的 person or group类型字段
    SharePoint Issue: Unable to oben the Site (Object null reference Error) Solution
    import a Microsoft SharePoint 2010 site definition
    SPListTemplateType 枚举 (Microsoft.SharePoint) 创建列表时的ListTemplate Type属性
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/2261238.html
Copyright © 2011-2022 走看看