我通常会在这里找到每个问题的答案,但找不到:
我正在尝试将div修复为top:50px
。
然而,当我滚动页面时,这个Div正在向上滚动,并且所提到的位置仅作为最小滚动位置的应用...
html:
<div class="homepage-hugger">
<div class="home-box" id="home-box-1">
--- Div's Content ---
</div>
--- some more stuff ---
</div>
JavaScript成功将以下css添加到#home-box-1
Div:
$("#home-box-1").css({"position": "fixed", "top" : "50px"});
结果css当然是:
position: fixed; top: 50px;
感谢阅读。
修改 完全相关的JavaScript按预期工作(它包含一些不相关的其他滚动行为代码):
也许更多我的代码会有所帮助...
这是.homepage-hugger
和.home-box
的.homepage-hugger{
width: 100%;
background-color: #fff;
position: relative;
z-index: 50;
box-shadow: 0 0px 30px rgba(0,0,0,0.4);
.home-box{
position: relative;
height: 150px;
box-shadow: 0 -10px 20px -5px rgba(0,0,0,0.1) inset;
width: 100%;
max-width: 100%;
}
}
$(document).ready(function(){
function mobileCats(){
var catOffset = $("#home-box-1").offset().top;
var winScroll = $(window).scrollTop();
var boxPos = catOffset - winScroll;
console.log(boxPos <= 50);
if (boxPos <= 50){
$("#home-box-1").css({"position": "fixed", "top" : "50px", "left" : "0px"});
}
}
mobileCats();
$(window).scroll(function()
{
mobileCats();
var x = $(this).scrollTop(); /* scroll pos */
var y = $("html").height();
var z = x / y;
curTop = ((z*500));
$(".main-banners").css("top", (curTop)+"px");
});
});
答案 0 :(得分:0)
经过进一步调查后,我发现position: fixed
和transform: translate()
因幕后数学原因无法叠加。
通过加载项添加到父Div的类已添加transform: translate()
样式,这使得子div的position: fixed
无法计算。
通过从所有容器中取出固定的Div,将其直接放在body
下并重新定位,来解决问题。
谢谢大家的帮助。赞赏。