1. 源码 (function($) { $.fn.extend({ position : function(center) { var left = 0, top = 0; if (center) { left = ($(window).width() - $(this).outerWidth(true)) / 2; top = ($(window).height() - $(this).outerHeight(true)) / 2; } else { if ($(this).css("left") !== 'auto') { left = parseInt($(this).css("left")); } else if ($(this).css("right") !== 'auto') { left = $(window).width() - $(this).outerWidth(true) - parseInt($(this).css("right")); } if ($(this).css("top") !== 'auto') { top = parseInt($(this).css("top")); } else if ($(this).css("bottom") !== 'auto') { top = $(window).height() - $(this).outerHeight(true) - parseInt($(this).css("bottom")); } } return $(this).css({ top : top, left : left, bottom : 'auto', right : 'auto' }); }, fixed : function () { var left = parseInt($(this).css("left")), top = parseInt($(this).css("top")); return ($.browser.msie && parseFloat($.browser.version) > 6.0) ? this.css({position : 'fixed'}) : this.each(function(i,o) { var $this = $(this).css({position : 'absolute', top : top}); setInterval(function() { $this.css({ top : $().scrollTop() + top }); }, 1); }); } }); })(jQuery); 2. 测试 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> jQuery 兼容ie6的固定定位插件,使用简单 </title> </head> <body> <div style="height:2000px;"></div> <div id="popWindow" style="border:3px solid #333;width:200px;height:200px;right:0px;bottom:0px;position:fixed;"> 这是一个弹出窗口 </div> <script type="text/javascript" src="http://mymyty.com/commons/scripts/jquery.js"></script> <script type="text/javascript"> (function($) { $.fn.extend({ position : function(center) { var left = 0, top = 0; if (center) { left = ($(window).width() - $(this).outerWidth(true)) / 2; top = ($(window).height() - $(this).outerHeight(true)) / 2; } else { if ($(this).css("left") !== 'auto') { left = parseInt($(this).css("left")); } else if ($(this).css("right") !== 'auto') { left = $(window).width() - $(this).outerWidth(true) - parseInt($(this).css("right")); } if ($(this).css("top") !== 'auto') { top = parseInt($(this).css("top")); } else if ($(this).css("bottom") !== 'auto') { top = $(window).height() - $(this).outerHeight(true) - parseInt($(this).css("bottom")); } } return $(this).css({ top : top, left : left, bottom : 'auto', right : 'auto' }); }, fixed : function () { var left = parseInt($(this).css("left")), top = parseInt($(this).css("top")); return ($.browser.msie && parseFloat($.browser.version) > 6.0) ? this.css({position : 'fixed'}) : this.each(function(i,o) { var $this = $(this).css({position : 'absolute', top : top}); setInterval(function() { $this.css({ top : $().scrollTop() + top }); }, 1); }); } }); })(jQuery); $("#popWindow").position(true).fixed(); </script> </body> </html>