您现在的位置:首页 >> 前端 >> 内容

jquery的固定顶部插件代码

时间:2018/3/16 15:13:48 点击:

  核心提示:jquery的固定顶部插件代码/********************************************************** jquery xyd plug in*******...

jquery的固定顶部插件代码

/*********************************************************
* jquery xyd plug in
*********************************************************/
(function($){
 $.fn.extend({
  setElementFixed : function(){
   /*
   * 设置p根据滚动条自动跟随
   * 需要提前设置css,分别制定top和left属性
   *  xydAutoFixed class是预留做p阴影效果
   */
   var $this = $(this),
    parent = $this.parent(),
    elementIsFixed = "none";   
   
   //设置元素尺寸
   function setPX(){
    //设置宽度和高度
    $this.css({
     "width":(parent.outerWidth())+"px",
     "top":"0",
     "left":parent.offset().left+"px"
    });
    
    //设置父层的宽度和高度
    parent.css({"height":$this.outerHeight()+"px"});
   }
   
      
   $(window).scroll(function (){
    setScrollTop();
   });
   
   $(window).resize(function(){
    setPX();
    setScrollTop();
   });
   
   $(document).ready(function(){
    setPX();
    setScrollTop();
   });
   function setScrollTop(){
    
    if($(window).scrollTop()>(parent.offset().top+$this.outerHeight()+30)){
     if(elementIsFixed!="fixed"){      
      elementIsFixed = "fixed";      
   
      $this
       .addClass("xydAutoFixed")
       .css({
        "position":"fixed",
        "top":"0",
        "left":parent.offset().left+"px",
        "display":"none"
       })
       .stop()
       .slideDown(300);
     }
     
    }else{
     elementIsFixed = "none";
     $this.css({"position":"relative","top":"0","left":"0"});
     $this.removeClass("xydAutoFixed");
    }
   }
   
  },
  hoverDelay : function(options) {
   /**
    * 鼠标延迟
    */
   var defaults = {
    hoverDuring: 200,
    outDuring: 200,
    hoverEvent: function() {
     $.noop();
    },
    outEvent: function() {
     $.noop();
    }
   };
   var sets = $.extend(defaults, options || {});
   var hoverTimer, outTimer;
   return $(this).each(function() {
    $(this).hover(function() {
     clearTimeout(outTimer);
     hoverTimer = setTimeout(sets.hoverEvent, sets.hoverDuring);
    }, function() {
     clearTimeout(hoverTimer);
     outTimer = setTimeout(sets.outEvent, sets.outDuring);
    });
   });
  }
  
 });
})(jQuery);

Tags:JQ QU UE ER 
作者:网络 来源:不详