gpt4 book ai didi

javascript - 使用 clientHeight/clientWidth 的差异使高度等于宽度

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:08 25 4
gpt4 key购买 nike

我将 .circle 的高度和宽度都设置为 80px。然而,一些浏览器和设备将高度设置为其他值。对于这个例子,我特意将高度和宽度设置为不同的值。我想要做的是获取 clientHeight 和 clientWidth 之间的差异(在此示例中为 80 - 50 = 30),然后从 clientHeight (80 - 30 = 50) 中减去它。为什么这行不通?

附言。此功能不适用于任何浏览器。此外,我不能只将高度设置为等于 clientWidth,因为这在某些浏览器/设备上也不起作用。

CSS

<style>
.circle {
height: 80px;
width: 50px;
border-radius: 50px;
position: relative;
}
#circle1 {
background-color: #4285F4;
}
#circle2 {
background-color: #FF8F2D;
}
#circle3 {
background-color: #34A853;
}
#circle4 {
background-color: #EB4436;
}
</style>

Javascript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function circleHeight(){
sizeDif = document.getElementById("circle1").clientHeight - document.getElementById("circle1").clientWidth;
alert("height " + document.getElementById("circle1").clientHeight + "</br> width " + document.getElementById("circle1").clientWidth + "</br> sizeDif " + sizeDif);

if ((!(sizeDif = 0))) {
$(".circle")
.animate({
height: document.getElementById("circle1").clientHeight - sizeDif + "px"
}, 500);

sizeDif = document.getElementById("circle1").clientHeight - document.getElementById("circle1").clientWidth;
alert("height " + document.getElementById("circle1").clientHeight + "</br> width " + document.getElementById("circle1").clientWidth + "</br> sizeDif " + sizeDif);
}
}
</script>

HTML

<body onload="circleHeight()">
<p class="circle" id="circle1"></p>
<p class="circle" id="circle2"></p>
<p class="circle" id="circle3"></p>
<p class="circle" id="circle4"></p>
</body>

谢谢

最佳答案

你可以尝试改变这一行

        if ((!(sizeDif = 0))) {

为此

        if (sizeDif != 0) {

...

但是我觉得你的代码太“污染”了,试试这个:

function circleHeight(){
$('.circle').each(function() {
var
h = $(this)[0].clientHeight,
w = $(this)[0].clientWidth,
dif = h-w;

if ( dif != 0 ) {
$(this).height(h-dif);
}
});
}

关于javascript - 使用 clientHeight/clientWidth 的差异使高度等于宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32489084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com