我正在尝试遵循本教程:http://jqueryfordesigners.com/fixed-floating-elements/。
问题在于,无论何时将固定定位应用于div,如果浏览器宽度发生变化,div将水平移动以适合视口内部。在教程示例http://static.jqueryfordesigners.com/demo/fixedfloat.html中,这不会发生。
这是我的代码(所有内容都位于相对位置的#wrapper中):
CSS:
#cart {
position: absolute;
right: 0;
width: 270px;
}
#target {
width: 270px;
height: 200px;
background-color: blue;
background-position: 50% 50%;
background-repeat: no-repeat;
position: absolute;
top: 250px;
right: 0;
padding: 0;
border-radius: 15px 15px 0 0 ;
}
#drag-here {
width: 270px;
height: 0;
background-image: url(drag-here.png);
background-repeat: no-repeat;
display: none;
position: absolute;
top: 470px;
right: 0;
}
#cart-list {
display: none;
position: absolute;
top: 430px;
right: 0;
list-style-type: none;
}
.sticky #target {position: fixed; top: 5px;}
.sticky #drag-here {position: fixed; top: 225px;}
.sticky #cart-list {position: fixed; top: 185px;}
HTML:
<section id="cart">
<div id="target" class="target-listen"></div>
<div id="drag-here"></div>
<ul id="cart-list">
</ul>
</section>
JQuery的:
sticky = false;
initialOffset = $("#target").offset().top - 5;
$(window).scroll(function () {
if ($(this).scrollTop() >= initialOffset) {
if (!sticky) {
$("#cart").addClass("sticky");
sticky = true;
}
}
else {
if (sticky) {
$("#cart").removeClass("sticky");
sticky = false;
}
}
});
您可以在此处查看我的信息页:http://www.brandcoffee.it/test/brandapart/imagick.php
答案 0 :(得分:1)
我认为删除right : 0;
中的#target
应该这样做。
答案 1 :(得分:0)
尝试在width
(或百分比)中提供ratio
属性,而不是固定像素值。
如:
width:25%; //for #target, and
float:right; //make target float right
width:75%; // for other contents on left side