toTop插件(三)

前言

    当窗体内容过多会出现滚动, 点击回到顶部滚动条在在上边(大家都懂得,我语文学的不好,表达不清^_^)

 

看代码

CSS :

 .toTop{
    position: fixed;
    width: 50px;
    height: 50px;
    border: 1px solid red;
    right: 20px;
    bottom: 50px;
    display: none;
  }

 

toTop.js:插件部分

// 回到顶部插件
  ;(function ($, win) {
    var ToTop = function (ele, options) {
      // Dom对象
      this.$element = ele;
      // 默认参数
      this.defaults = {
        delayTime: 500,    // 默认延迟时间
        eventType: 'click', //默认click  可以替换成(mouseover,mouseenter ....)
        toTopCallback: function(){} // 顶部回调函数
      };
      // 整合参数 ,options要在最后
      this.settings = $.extend({},this.defaults, options);
    };

    ToTop.prototype = {
      init: function () {
        // _this 当前类对象
        var _this =this;
        this.gotoBtn();
        return this.$element.each(function(){
          $(window).scroll(function(){
            var sc = $(window).scrollTop();
            if(sc > 10){
              _this.$element.show();
            }else{
              _this.$element.hide();
            }
          })
        });
      },
      gotoBtn: function(){
        var _this = this;
          this.$element.on(this.settings.eventType, function(){
          var topV = $(window).scrollTop();
          // 'body,html' 
          $('html').animate({scrollTop: 0}, _this.settings.delayTime, function(){
            _this.settings.toTopCallback();
          });
        });
      }
    };

    // 插件名称
    $.fn.toTopFun = function(options){
      var toTopP = new ToTop(this,options);
      return toTopP.init();
    }
  })(jQuery, window);

 

页面使用

  $(function(){
    // 调用
    $('.toTop').toTopFun({
      delayTime: 800,
      toTopCallback: function(){
      alert('滚动到达顶部回调处理')
      }
    });
  })

 

posted on 2017-10-16 17:44  Mc525  阅读(344)  评论(0编辑  收藏  举报

导航