(function ($) { jquery.fn.divfloat = function (options) { var own = this; var settings = { delay: 30, xpos: 0, ypos: 0, roll:true }; jquery.extend(settings, options); var owntop = settings.ypos; var ownleft = settings.xpos; own.css({ position: "absolute", cursor: "pointer", top: owntop, left: ownleft }); var speed = 1; var iwidth = own.outerwidth(true); var iheight = own.outerheight(true); var windowobj = $(window); var browserwidth = windowobj.width(); var browserheight = windowobj.height(); var scrolltop = 0; own.show(); var flagx = 0; var flagy = 0; var offset; function flowdiv() { offset = own.offset(); ownleft = offset.left; owntop = offset.top; if (ownleft < (browserwidth - iwidth) && flagx == 0) { own.css("left", ownleft + speed); } else if (ownleft >= (browserwidth - iwidth) && flagx == 0) { flagx = 1; } else if (ownleft > 0 && flagx == 1) { own.css("left", ownleft - speed); } else if (ownleft <= iwidth && flagx == 1) { flagx = 0; } if (owntop < (browserheight + scrolltop - iheight) && flagy == 0) { own.css("top", owntop + speed); } else if (owntop >= (browserheight + scrolltop - iheight) && flagy == 0) { flagy = 1; } else if (owntop > scrolltop && flagy == 1) { own.css("top", owntop - speed); } else if (owntop <= (browserheight + scrolltop - iheight) && flagy == 1) { flagy = 0; } } var divinterval = setinterval(flowdiv, settings.delay); own.mouseover(function () { clearinterval(divinterval); }).mouseout(function () { divinterval = setinterval(flowdiv, settings.delay); }); if (settings.roll) { var scrolltimeout; var oldscrolltop = 0; windowobj.scroll(function () { cleartimeout(scrolltimeout); clearinterval(divinterval); scrolltimeout = settimeout(function () { offset = own.offset(); owntop = offset.top; scrolltop = windowobj.scrolltop(); if (scrolltop > oldscrolltop) { own.css("top", owntop + (scrolltop - oldscrolltop)); } else if (scrolltop < oldscrolltop) { own.css("top", owntop - (oldscrolltop - scrolltop)); }; oldscrolltop = scrolltop; divinterval = setinterval(flowdiv, settings.delay); }, 300); }); } else { } } })(jquery);