我想用另一个元素来定位div,但是当页面垂直滚动时使它保持原位。父元素比屏幕高度长。这可以用CSS来完成,还是需要使用jQuery(这就是我通常使用的)?我会用固定的位置,但我不知道如何将它相对于父DIV关联...相对于另一个元素的位置div
<div id="veryHighDiv">
<div id="positionMe"></div>
</div>
所以,我需要它是相对于水平位置的长期父位置,但“定“当涉及到垂直滚动。
我想用另一个元素来定位div,但是当页面垂直滚动时使它保持原位。父元素比屏幕高度长。这可以用CSS来完成,还是需要使用jQuery(这就是我通常使用的)?我会用固定的位置,但我不知道如何将它相对于父DIV关联...相对于另一个元素的位置div
<div id="veryHighDiv">
<div id="positionMe"></div>
</div>
所以,我需要它是相对于水平位置的长期父位置,但“定“当涉及到垂直滚动。
很简单的使用jQuery - http://jsfiddle.net/zA3mq/
$(window).scroll(function() {
$("#positionMe").css('position', 'fixed');
});
太棒了!太棒了。 – santa
由于您最终希望它是固定位置,因此无需将其作为相对位置启动,因为将其更改为动态修复会破坏您在相对位置(或通常绝对位置)内执行的任何CSS工作。
如果是我,我会写一个函数来计算固定元素应该在哪里,然后一定要在所有窗口事件上调用它,例如加载和调整大小,以便它保持原位。下面是一个示例,但您可能需要根据您的CSS的其余部分更改:
<script>
$(window).load(function() {
positionElem();
});
$(window).resize(function() {
positionElem();
});
function positionElem() {
var padFromDiv = 30; // amount of padding you want from your div
var newX = 0; // initialize newX at 0
// get difference in window and veryHighDiv if window is larger
if ($(window).width() > $('#veryHighDiv').width()) {
newX = ($(window).width()-$('#veryHighDiv').width());
}
newX+=padFromDiv;
$('#positionMe').css('left',newX);
}
</script>
如果将一个绝对的风格div来相对DIV我相信,它会留卡到哪里相对div是。
<div id="veryHighDiv">
<div id="positionmMe"> </div>
</div>
#veryHighDiv {
position: relative;
}
#positionMe {
position: absolute;
top: 50px;
left: 100px;
}
位置格绝对于母公司的项目,调整它在滚动事件 –
所以“顶”,这是CSS和jQuery的组合解决方案? – santa
'position:fixed'应该是相对于浏览器窗口,而不是任何父元素。 – Blazemonger