zoukankan      html  css  js  c++  java
  • 一款回到顶部的 jQuery 插件,支持 Div 中的滚动条回到顶部

    前言

    今天在网上搜索“回到顶部”的 jQuery 插件,网上有很多,但是大部分都不支持让 Div 中的滚动条回到顶部。于是乎,不放弃,自己参考 Github 上的一个 jQuery 插件,经过自己的修改,终于让它支持了。

    运行效果

    口说无凭,写贴效果图:

    这是当滚动条处于最顶部时,会自动隐藏“回到顶部”的按钮。

     

    下图是当滚动条往下滚动到一定的距离(PS:这个距离可以配置),会自动出现“回到顶部”的图标。备注:这个图标的地址也可以配置。

    下面是带滚动条的 DIV 的效果。 

    点击看大图

    代码

    jquery.goup.js  插件代码:

    // https://github.com/rogervila/jquery-GoUP-plugin
    // 笔者(http://music.cnblogs.com)已经修改了一些代码,和原来的有区别,请注意!
    
    (function ($) {
        var defaultImgsrc = "http://goo.gl/VDOdQc";
        var defaultImgWidth = 72;
        if (typeof (document.scripts) != 'undefined') {
            var js = document.scripts;
            var currentJsPath = js[js.length - 1].src.substring(0, js[js.length - 1].src.lastIndexOf("/") + 1);
            defaultImgsrc = currentJsPath + "back_to_top_white.gif";
            defaultImgWidth = 38;
        }
        $.fn.goup = function (options) {
            $.fn.goup.defaultOpts = {
                alwaysAppear: false,
                scrollTopContainner: null,
                appearFromTop: 200,
                scrollTime: 500,
                imgSrc: defaultImgsrc, //it works with short urls
                 defaultImgWidth,
                place: "bottom-right",
                fadein: 500,
                fadeout: 500,
                opacity: 0.8,
                marginX: 2,
                marginY: 2
            };
            var opts = $.extend({}, $.fn.goup.defaultOpts, options);
            return this.each(function () {
                var goup = $(this);
                goup.html("<a><img /></a>");
                //var goupa = $('#goup a'),
                //    goupimg = $('#goup a img');
                var goupa = goup.find("a");
                var goupimg = goupa.find("img");
                //width
                goup.css({
                    "position": "fixed",
                    "display": "block",
                    "width": "'" + opts.width + "px'",
                    "z-index": "9"
                });
                //opacity
                goupa.css("opacity", opts.opacity);
                goupimg.attr("src", opts.imgSrc);
                goupimg.width(opts.width);
                if (!opts.alwaysAppear) {
                    goupimg.hide();
                }
                var jContainner;
                var jWinObj;
                if (opts.scrollTopContainner) {
                    jContainner = opts.scrollTopContainner;
                    jWinObj = jContainner;
                }
                else {
                    jContainner = $('body,html');
                    jWinObj = $(window);
                }
                //appearFromTop, fadein, fadeout
                $(function () {
                    if (!opts.alwaysAppear) {
                        jWinObj.scroll(function () {
                            if ($(this).scrollTop() > opts.appearFromTop) {
                                goupimg.fadeIn(opts.fadein);
                            } else {
                                goupimg.fadeOut(opts.fadeout);
                            }
                        });
                    }
                    //hover effect
                    $(goupa).hover(function () {
                        $(this).css("opacity", "1.0");
                        $(this).css("cursor", "pointer");
                    }, function () {
                        $(this).css("opacity", opts.opacity);
                    });
                    
                    //scrollTime
                    $(goupa).click(function () {
                        jContainner.animate({
                            scrollTop: 0
                        }, opts.scrollTime);
                        return false;
                    });
                });
                //place, marginX, marginY: 
                if (opts.place === "top-right") {
                    goup.css({
                        "top": opts.marginY + "%",
                        "right": opts.marginX + "%"
                    });
                } else if (opts.place === "top-left") {
                    goup.css({
                        "top": opts.marginY + "%",
                        "left": opts.marginX + "%"
                    });
                } else if (opts.place === "bottom-right") {
                    goup.css({
                        "bottom": opts.marginY + "%",
                        "right": opts.marginX + "%"
                    });
                } else if (opts.place === "bottom-left") {
                    goup.css({
                        "bottom": opts.marginY + "%",
                        "left": opts.marginX + "%"
                    });
                } else {
                    goup.css({
                        "bottom": opts.marginY + "%",
                        "right": opts.marginX + "%"
                    });
                }
            });
        };
    })(jQuery);

    简单 Demo 代码:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="resources/scripts/jquery-1.10.1.min.js"></script>
        <script src="resources/plugins/jquery-GoUP/jquery.goup.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $('#goup3').goup({
                    //alwaysAppear: false, /* 是否“回到顶部”图标总是出现,即:不隐藏 */
                    //scrollTopContainner: null, /* 该滚动条是否是 DIV 中的滚动条,如果是,请传入比如:$("#DivId") */
                    //appearFromTop: 200, /* 距离顶部多少像素就出现 */
                    //scrollTime: 500,/* 滚动到顶部花费的时间(毫秒数) */
                    ////imgSrc: 'resources/plugins/jquery-GoUP/back_to_top_white.gif',
                    //place: "bottom-right",
                    //fadein: 500,
                    //fadeout: 500,
                    //opacity: 0.8,
                    //marginX: 2,
                    //marginY: 2
                });
            });
        </script>
    </head>
    <body>
        <div id='goup3'></div>
        <h1>文本</h1>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
    </body>
    </html>

    带滚动条的 DIV 的 Demo

    <script type="text/javascript">
        $(document).ready(function () {
            $('#goup').goup({
                alwaysAppear: false,
                scrollTopContainner:$("#reportDiv"),
                marginX: 5,
                marginY: 15
            });
        });
    </script>
    
    <div id="reportDiv" style="overflow-y:scroll; ">
        <div id='goup'></div>
        <h1>文本</h1>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <br /><br /><br /><br /><br /><br /><br />
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
        <p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p><p>水电费收费</p>
    </div>

    图标(备注:请下载下面这个图标,然后重命名为 back_to_top_white.gif,然后放到和 jquery.goup.js 相同的目录):

     

    谢谢浏览!

  • 相关阅读:
    you must restart adb and eclipse的相关解决办法
    配有Tesla K40c的服务器新装Ubuntu16.04并安装CUDA8.0、Anaconda3、Matlab2016a、OPENCV3.1、CuDNN5.1、MXNet
    MXNet在64位Win7下的编译安装
    [Kinect]XBox One Kinect连接Windows
    64位Win7下编译Python3的计算机视觉库:OpenCV
    64位Win7下安装并配置Python3的深度学习库:Theano
    Noah的学习笔记之Python篇:命令行解析
    Noah的学习笔记之Python篇:函数“可变长参数”
    Noah的学习笔记之Python篇:装饰器
    linux下安装MySQL5.6记录
  • 原文地址:https://www.cnblogs.com/Music/p/jquery-plugin-jquery-goup.html
Copyright © 2011-2022 走看看