希望的效果是像:百度UEditor的功能按钮块部分的定位效果,示例页面:ueditor.baidu.com/onlinedemo.html,
1. 刚进入示例页面时,功能按钮块的css定位是:position:relative;
2. 在将页面滚动条向下移动,当功能按钮块快要移出浏览器窗口界面时,整个按钮功能块的css定位会变为:position:fixed,从而可以一直停留在浏览器窗口的最上方,方便用户继续编辑。
给这个效果一个术语“智能浮动”,
网上有实现,通过扩展jquery,参考连接:
http://www.wufangbo.com/jquery-position-fixed-bug/
算是已解决,结贴。
你使用JQUERY来改变当页面滚动是POSITION的属性试试。
现在主要想知道:某个元素移出/移入浏览器可见窗口,这个事件怎么来判断,一旦知道这个,修改元素的position定位就很容易了。
很多js框架都可以实现相关的功能,如图片网站上的图片Lazy Loading其实也是类似功能的使用。
不用脚本也可以实现智能漂浮,直接用CSS定义position:fixed这个属性就可以实现,不过这个在IE6下不兼容,不过网上有这个BUG的解决方法,本人在最近的做的网页中就用过这个,可以达到IE,火狐都兼容。
fixed,这个只有ie6不兼容,ie6以上都可以。ie6的话,就是要用脚本特殊处理下。
scroll事件判断,和css修改。比如,jquery的话,可以简单的表达下:
1 $(window).scroll(function(){ 2 3 if($(window).scrollTop()>300){ //如果滚动高度超过300像素 4 5 $("元素选择器").css({position:"fixed"})//元素的定位变换为固定浮动 6 7 } 8 9 $("元素选择器").css({position:"relative"})//否则,定位为相对定位 10 11 })
当然,要做到兼容,还得拓展其他方法,