【发布时间】:2014-03-29 19:10:19
【问题描述】:
我正在使用 Wordpress,我需要在页面滚动时将 div 固定在顶部。出于响应原因,div (.details) 必须具有百分比宽度。我找到了一个 javascript 来停止 div (.details),当它距离顶部 40px 时,将它从相对位置切换到固定位置。它在相对位置时有 25% 的宽度,但当它变得固定时,25% 的宽度现在基于窗口而不是基于父元素 (.entry),即比窗口小,所以滚动时它会变大。这些是 CSS 和 Javascript(.carousel 是 .entry 中的另一个 div,它在 .details 的左侧):
<style>
.entry { position:relative; width:100%; }
.carousel { width:70%; height: auto; position: relative; float: left; margin-top: 0px;}
.details { width: 25px; height: 100%; float: right; margin-top: 0px; line-height: 20px;}
</style>
<script>
$(window).scroll(function(){
if ($(window).scrollTop() >= 90){
$('.details').css({position:'fixed',right:40,top:40,width:'25%'});
} else {
$('.details').css({position:'relative',right:0,top:0,width:'25%'});
}
});
</script>
我需要根据 .entry 而不是窗口来设置 .details div 的宽度。 任何人都可以发现错误或需要其他东西吗?我不是 Javascript 方面的专家。 谢谢大家!
【问题讨论】:
-
没有办法制作一个相对于它的父元素的固定元素。它总是相对于窗口。您可以使用 JavaScript 设置宽度,但是您必须附加一个事件侦听器窗口大小更改
-
您应该创建一个 JSFiddle 或给我们一个示例链接。您是否有理由不希望您的菜单占窗口 100% 的宽度?
-
这是网站:davidegiorgetta.com/choos。如您所见,右侧有一个文本框(.details)。当您滚动页面时,它会变大。该框不是 100%,因为左侧还有另一个框 (.carousel) 用于放置图像。我要准备小提琴。我希望我很清楚。
标签: javascript jquery wordpress scroll width