jquery 如何正确计算窗口屏幕高度以适应div中的元素?

w8rqjzmb  于 2023-10-17  发布在  jQuery
关注(0)|答案(2)|浏览(112)

我试图在divTwo div中设置#blue_square的高度。我使用jquery计算高度:

$("#blue_square").css("top", $(window).height() / 2 - 90)

此代码在大屏幕上工作(如桌面),但在较小的屏幕上(如笔记本电脑,平板电脑,移动的)此代码不工作。
我看到的问题是,我的divTwoblue_square CSS不知何故从blueBackground div开始。下面是一个快照:example 1
我希望#blue_square的CSS只适用于divTwo内部,而不是外部。为什么“blue squaure”图从blueBackground开始,而不是从divTwo内部开始?我试着让它看起来像这样:example 2
我在想我错估了#blue_square的高度。有办法解决吗?

<div class="blueBackground"></div>

<div class="divTwo">
    <div class="col-md-12 col-sm-10">   
        <div id="blue_square" style="top: 310px;"></div>
    </div>   
</div>

.divTwo{
    position: relative;
}

#blue_square{
    position: fixed;
    right: 0;
    z-index: 9;
    width: 370px;
    box-shadow: 0 0 6px transparent;
}

$("#blue_square").css("top", $(window).height() / 2 - 90)
qltillow

qltillow1#

看起来你对#blue_square的固定位置的使用可能是#blue_square从blueBackground div而不是divTwo div的顶部开始的原因
但是你可以尝试使用这个jQuery .height()方法来获取div的高度,然后使用.css()方法根据该值设置元素的高度。
你看:

var divHeight = $('.divTwo').height();
$('#blue_square').css('height', divHeight);

这将设置#blue_square的高度以匹配divTwo div的高度。

bvjxkvbb

bvjxkvbb2#

您可以使用此计算:

const blueTop = $(".blueBackground").height() + $(window).height() / 2 - 90;
$("#blue_square").css("top",  blueTop);

但是,如果蓝色背景是一样大,或更大,那么窗口将不会显示蓝色块在所有。如果你想让蓝色块在用户开始滚动经过蓝色背景后出现,你需要使用JavaScript。(example

相关问题