您好,欢迎访问一九零五行业门户网

随窗体滑动的小插件sticky源码_javascript技巧

复制代码 代码如下:
$.fn.stickyfloat = function(options, lockbottom) {
                var $obj                 = this;
                var parentpaddingtop     = parseint($obj.parent().css('padding-top'));
                var startoffset         = $obj.parent().offset().top;
                var opts                 = $.extend({ startoffset: startoffset, offsety: parentpaddingtop, duration: 200, lockbottom:true }, options);
$obj.css({ position: 'absolute' });
if(opts.lockbottom){
                    var bottompos = $obj.parent().height() - $obj.height() + parentpaddingtop;
                    if( bottompos                         bottompos = 0;
                }
$(window).scroll(function () {
                    $obj.stop();                    var paststartoffset            = $(document).scrolltop() > opts.startoffset;  
                    var objfartherthantoppos    = $obj.offset().top > startoffset;  
                    var objbiggerthanwindow     = $obj.outerheight()
                    if( (paststartoffset || objfartherthantoppos) && objbiggerthanwindow ){
                        var newpos = ($(document).scrolltop() -startoffset + opts.offsety );
                        if ( newpos > bottompos )
                            newpos = bottompos;
                        if ( $(document).scrolltop()                             newpos = parentpaddingtop;
$obj.animate({ top: newpos }, opts.duration );
                    }
                });
            };
使用方法很简单:只要在页面中引入该插件,然后用选择器调用:
复制代码 代码如下:
$('#menu15').stickyfloat({ duration: 500 });
$('#menu14').stickyfloat({ duration: 500 });
$('#menu13').stickyfloat({ duration: 500 });
$('#menu12').stickyfloat({ duration: 500 });
后面的duration参数表示滑动的速度,越大越慢。
其它类似信息

推荐信息