Sam*_*Sam 5 html javascript css jquery
我想有垂直但不是水平固定的div元素.目前,我top每次滚动时都使用jQuery来更新位置,但我不希望它看到移动.我希望它能在没有移动的情况下得到修复.有没有办法做到这一点?
-----------------
| | |
| | |
| div A | div B |
| | |
| | |
| | |
-----------------
Run Code Online (Sandbox Code Playgroud)
向下滚动
-----------------
| div A | |
| | |
| | div B |
| | |
| | |
| | |
-----------------
Run Code Online (Sandbox Code Playgroud)
我希望能够Div B在Div A向下和向上滚动的同时保持垂直固定.但是当我向右和向左滚动时,我会挥动Div A并Div B移动.
我注意到Twitter使用类似的东西.单击推文后,右侧显示推文详细信息的元素将被修复.我不确定他们是怎么做的.看到第二张图像,向下滚动右侧面板保持固定.

第二张图片:

Twitter使用css属性:position: fixed;这肯定是最好的方法.
这完全符合它的说法,它确定了位置.通过使用top,right,bottom和left属性你可以设置你的div的确切位置.
编辑13-12-11(太棒了!)
该属性position: fixed;不能仅影响一个轴上的定位属性.这意味着,您无法向左或向右滚动,就像您想要的那样.
我强烈建议你应该避免超过屏幕宽度,使用元素宽度的百分比.你也可以坚持你的javascript.
但是,您可以首先使用我建议的方法,但使用滚动事件侦听器更改left属性,以便在滚动时,左侧偏移量增加或减少.因为jQuery的糟糕的跨浏览器支持我会选择jQuery.我认为你可以对原型库做几乎一样的事情,但我不熟悉那个库.
jQuery(在谷歌浏览器中工作):
var offset = 400; // left offset of the fixed div (without scrolling)
$(document).scroll(function(e) {
// b is the fixed div
$('.b').css({
'left': offset - $(document).scrollLeft()
});
});
Run Code Online (Sandbox Code Playgroud)
看看现场演示
您可能需要将document对象更改为您选择的另一个对象或选择器.
| 归档时间: |
|
| 查看次数: |
13925 次 |
| 最近记录: |