(function($){ $.extend($.fn, { posfixed: function(configsettings){ var settings = { direction:"top", type:"while", hide:false, distance:0 }; $.extend(settings, configsettings); //initial if($.browser.msie&&$.browser.version==6.0){ $("html").css("overflow","hidden"); $("body").css({ height:"100%", overflow:"auto" }); } var obj = this; var initpos = $(obj).offset().top; var initposleft = $(obj).offset().left; var anchoredpos = settings.distance; if(settings.type=="while"){ if($.browser.msie&&$.browser.version==6.0){ $("body").scroll(function(event) { var objtop = $(obj).offset().top - $("body").scrolltop(); if(objtop<=settings.distance){ $(obj).css("position","absolute"); $(obj).css("top",settings.distance+"px"); $(obj).css("left",initposleft+"px"); } if($(obj).offset().top<=initpos){ $(obj).css("position","static"); } }); }else{ $(window).scroll(function(event) { if(settings.direction == "top"){ var objtop = $(obj).offset().top - $(window).scrolltop(); if(objtop<=settings.distance){ $(obj).css("position","fixed"); $(obj).css(settings.direction,settings.distance+"px"); } if($(obj).offset().top<=initpos){ $(obj).css("position","static"); } }else{ var objbottom = $(window).height() - $(obj).offset().top + $(window).scrolltop() - $(obj).outerheight() ; if(objbottom<=settings.distance){ $(obj).css("position","fixed"); $(obj).css(settings.direction,settings.distance+"px"); } if($(obj).offset().top>=initpos){ $(obj).css("position","static"); } } }); } } if(settings.type=="always"){ if($.browser.msie&&$.browser.version==6.0){ if(settings.hide){ $(obj).hide(); } $("body").scroll(function(event) { if($("body").scrolltop()>300){ $(obj).fadein(200); }else{ $(obj).fadeout(200); } }); $(obj).css("position","absolute"); $(obj).css(settings.direction,settings.distance+"px"); if(settings.tag!=null){ if(settings.tag.obj!=null){ if(settings.tag.direction=="right"){ $(obj).css("left",(settings.tag.obj.offset().left+settings.tag.obj.width()+settings.tag.distance)+"px"); $(window).resize(function(){ $(obj).css("left",(settings.obj.tag.offset().left+settings.tag.obj.width()+settings.tag.distance)+"px"); }); }else{ console.log(settings.tag.obj.offset().left-settings.tag.obj.width()-settings.tag.distance); $(obj).css("left",(settings.tag.obj.offset().left-$(obj).outerwidth()-settings.tag.distance)+"px"); $(window).resize(function(){ $(obj).css("left",(settings.tag.obj.offset().left-$(obj).outerwidth()-settings.tag.distance)+"px"); }); } }else{ $(obj).css(settings.tag.direction,settings.tag.distance+"px"); } } }else{ if(settings.hide){ $(obj).hide(); } $(window).scroll(function(event) { if($(window).scrolltop()>300){ $(obj).fadein(200); }else{ $(obj).fadeout(200); } }); var objleft = $(obj).offset().left; $(obj).css("position","fixed"); $(obj).css(settings.direction,settings.distance+"px"); if(settings.tag!=null){ if(settings.tag.obj!=null){ if(settings.tag.direction=="right"){ $(obj).css("left",(settings.tag.obj.offset().left+settings.tag.obj.width()+settings.tag.distance)+"px"); $(window).resize(function(){ $(obj).css("left",(settings.obj.tag.offset().left+settings.tag.obj.width()+settings.tag.distance)+"px"); }); }else{ console.log(settings.tag.obj.offset().left-settings.tag.obj.width()-settings.tag.distance); $(obj).css("left",(settings.tag.obj.offset().left-$(obj).outerwidth()-settings.tag.distance)+"px"); $(window).resize(function(){ $(obj).css("left",(settings.tag.obj.offset().left-$(obj).outerwidth()-settings.tag.distance)+"px"); }); } }else{ $(obj).css(settings.tag.direction,settings.tag.distance+"px"); } } } } } }); })(jquery);