我需要这样做,以便通常(取决于分辨率)偏离页面可视区域底部的元素浮动在页面底部,并在滚动时跟随页面向下(在类似于位置的效果:在css中修复。
然而,我需要那个元素然后在它到达自然的地方时停下来并保持原状,如果这有意义的话!
理想情况下,如果不支持css / js,元素也应该出现在“自然”位置。
有关处理此问题的最佳方法的任何想法?有人知道任何可能有帮助的现有jQuery插件吗?
非常感谢,
斯图
答案 0 :(得分:3)
这就是我在客户端网站上完成此操作的方法:
JavaScript(使用jQuery):
if( !$.browser.msie || ($.browser.msie && $.browser.version > 6) ){
$('body').append('<div id="listener" rel="generated"> </div>');
$(window).scroll(function () {
if($('#listener').offset().top > 150){
$('body:not(.fixmenu)').addClass('fixmenu');
}else{
$('body.fixmenu').removeClass('fixmenu');
}
});
}
CSS:
#listener{
position: fixed;
top: 0;
right: 0;
height: 1px;
width: 1px;
}
#page #submenu{
position: absolute;
top: 85px;
z-index: 3;
}
.fixmenu #submenu{ position: fixed; }
该技术:动态生成一个不可见的“监听器”div,在页面的右上角有固定的位置。当该侦听器从页面顶部150像素(或在此处插入您的任意数字)或更多时,将“fixmenu”类添加到<body>
。从这里开始,使用CSS将菜单的位置从绝对更改为固定。
由于IE6不支持固定定位,我选择将其排除。