jquery 返回顶部(插件)

转载请注明:http://write.blog.csdn.net/mdeditor#!postId=78715532

先前复习了jquery的插件写法主要是第二种,简单的例子练手

html

<body>
    <img src="images/45/bg.jpg" alt="" class="content">
    <span class='back'>
        <img src="images/45/nav.jpg">
    </span>
</body>

一般的写法

<script>
        $(function(){
            $(window).scroll(function(){
                if( $(window).scrollTop() >= $(window).height() ){
                    $('.back').fadeIn(1000, 'swing');
                }else{
                    $('.back').fadeOut(1000, 'swing');
                }
            });
            $('.back').click(function(){
                $('html, body').animate( { scrollTop: 0 }, 1000)  //回到scrollTop为0的位置
            });
        })
</script>

插件写法

<script type="text/javascript">
    ;(function($,window,document,undefined){
        $.fn.toTop= function(options){
            var defaults = {
                scrollTop: 0,
                appear: $(window).height(),
                scrollTime: 1000,
                fadeTime: 1000,
                fadeEasing: 'swing'
            }
            var opt = $.extend({},defaults , options);

            var _this = this;
            $(window).scroll(function(){
                if( $(window).scrollTop() >=  opt.appear){
                    _this.fadeIn(opt.fadeTime, opt.fadeEasing);
                }else{
                    _this.fadeOut(opt.fadeTime, opt.fadeEasing);
                }
            });
            this.click(function(){
                $('html, body').animate( { scrollTop: opt.scrollTop }, opt.scrollTime)  //回到scrollTop为0的位置
            });
        };
    })(jQuery,window,document);

    $('.back').toTop({
        scrollTop: '10px', //距离顶部的位置,默认为0
        appear: $(window).height(), //返回顶部图标的出现位置,默认为一个可是窗口的高度
        scrollTime: 1000,  //滚动的时间,默认 1000毫秒
        fadeTime: 1000,    //图标出现的动画时间,默认1000毫秒
        fadeEasing: 'swing'  // 图标出现的动画时间
    });
</script>

啥?还有一种面向对象的写法,研究了一下

面向对象的插件写法

<script type="text/javascript">
    ;(function($,window,document,undefined){
        var ScrollTop = function(ele,options){
            this.defaults = {
                scrollTop: 0,
                appear: $(window).height(),
                scrollTime: 1000,
                fadeTime: 1000,
                fadeEasing: 'swing'
            };
            this.$ele = ele;
            this.opt = $.extend({}, this.defaults,options);
        }
        ScrollTop.prototype.showObj = function(){
            var _this = this;
            $(window).scroll(function(){
                console.log(_this.defaults);
                if( $(window).scrollTop() >=  _this.opt.appear){
                    _this.$ele.fadeIn(_this.opt.fadeTime, _this.opt.fadeEasing);
                }else{
                    _this.$ele.fadeOut(_this.opt.fadeTime, _this.opt.fadeEasing);
                }
            });
        };
        ScrollTop.prototype.clickEvent = function(){
            var _this = this;
            _this.$ele.click(function(){
                $('html, body').animate( { scrollTop: _this.opt.scrollTop }, _this.opt.scrollTime)  //回到scrollTop为0的位置
            });
        }
        $.fn.toTop= function(options){
            var obj = new ScrollTop(this,options);
            obj.showObj();
            obj.clickEvent();
        };
    })(jQuery,window,document);

    $('.back').toTop({
        scrollTop: '10px', //距离顶部的位置,默认为0
        appear: $(window).height(), //返回顶部图标的出现位置,默认为一个可是窗口的高度
        scrollTime: 1000,  //滚动的时间,默认 1000毫秒
        fadeTime: 1000,    //图标出现的动画时间,默认1000毫秒
        fadeEasing: 'swing'  // 图标出现的动画时间
    });
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值