首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

转帖:jQuery: 随滚动居间效果

2012-10-20 
转帖:jQuery: 随滚动居中效果?在网上找到了一个实现“随滚动条滚动居中效果”的jQuery插件,感觉很有用,故收

转帖:jQuery: 随滚动居中效果

?

在网上找到了一个实现“随滚动条滚动居中效果”的jQuery插件,感觉很有用,故收藏下来。

原文地址:http://mrwlwan.wordpress.com/2008/12/05/jquery-%E9%9A%8F%E6%BB%9A%E5%8A%A8%E5%B1%85%E4%B8%AD%E6%95%88%E6%9E%9C/

?

?

随滚动居中的效果,平时都会经常使用到,于是写成一个 jQuery 的插件。同时,这是我写的第一个插件。呵呵。纪念一下。

该插件可以令所选择的 Elements 永远浮动在窗口中央,无论是滚动还是窗口的大小发生改变。

代码
(function($){    $.fn.extend({        // 兼容不同的浏览器取得窗口的大小        getWindowSize: function(){            if($.browser.opera){                return {width: window.innerWidth, height: window.innerHeight};            }            return {width: $(window).width(), height: $(window).height()};        },        // 主函数        scrollCenter: function(options){            // 扩展参数            var op = $.extend({                z: 1000000            }, options);            // 追加到 document.body 并设置其样式            var windowSize = this.getWindowSize();            this.appendTo(document.body).css({                'position': 'absolute',                'z-index': op.z,                'top': (windowSize.height - this.height())/2+$(window).scrollTop() + 'px',                'left': (windowSize.width - this.width())/2+$(window).scrollLeft() + 'px'            });            // 保存当前位置参数            var bodyScrollTop =  $(document).scrollTop();            var bodyScrollLeft =  $(document).scrollLeft();            var movedivTop = this.offset().top;            var movedivLeft = this.offset().left;            var thisjQuery = this;            // 滚动事件            $(window).scroll(function(e){                var tmpBodyScrollTop = $(document).scrollTop();                var tmpBodyScrollLeft = $(document).scrollLeft();                movedivTop += tmpBodyScrollTop - bodyScrollTop;                movedivLeft += tmpBodyScrollLeft - bodyScrollLeft;                bodyScrollTop = tmpBodyScrollTop;                bodyScrollLeft = tmpBodyScrollLeft;                // 以动画方式进行移动                thisjQuery.stop().animate({                    'top': movedivTop + 'px',                    'left': movedivLeft + 'px'                });            });            // 窗口大小重设事件            $(window).resize(function(){                var windowSize = thisjQuery.getWindowSize();                movedivTop = (windowSize.height - thisjQuery.height())/2+$(document).scrollTop();                movedivLeft = (windowSize.width - thisjQuery.width())/2+$(document).scrollLeft();                thisjQuery.stop().animate({                    'top': movedivTop + 'px',                    'left': movedivLeft + 'px'                });            });            return this;        }    });})(jQuery);
使用方法
$(selector).scrollCenter();$(selector).scrollCenter({z:1000000});

参数 z 是设置其 z-index(默认设为1000000),以免被其它的层所遮盖。

?

热点排行