自本週開始,我一直在嘗試做這項工作,但無法弄清楚。我在我的HTML文件中有兩個元素。它們位於同一條垂直通道上,每按一下按鈕,元素1就會向左移動60ems。我必須比較這兩個元素的位置,並檢測element1是否通過if/else語句傳遞了element2。當它通過時,我想將element1移動到其初始位置並重新開始。但是如果陳述從不發射,它總是跳轉到其他陳述。如何比較javascript中兩個元素的位置
我已經嘗試了比較以下屬性:
$('#elemet1').position();
$('#elemet1').position().left;
$('#elemet1').offset();
$('#elemet1').offsetLeft;
$('#elemet1').css("position");
$('#elemet1').css("left");
$('#elemet1').css("margin");
$('#elemet1').left;
我試圖比較像下面的位置:
$(function() {
$("button").click(function() {
var position1 = $('#element1').css("left");
var position2 = $('#element2').css("left");
if (position1 <= position2) {
$("#element1").animate({left:'+=240em'}, 600);
}
else {
$("#element1").animate({left:'-=60em'}, 600);
}
});
});
如果你能給我一個答案或直接我另一篇文章中,我將感激它。先謝謝你。
編輯:我使用的風格是下面:
.element2 {
position: relative;
width: 60em;
height: 40em;
bottom: 8em;
background: rgba(242, 210, 139, 0.6);
border-radius: 1.2em;
z-index: 1;
overflow: hidden;
#element1 {
position: absolute;
margin-left: 180em;
width: 60em;
height: 40em;
z-index: 1;
}
我應該在一開始也提到了這一點:部件1是內部element2的:
<div class="element2">
<img id="element1" src="image/bg1.png" />
</div>
使用alert或console.log轉儲出position1/position2的值。可能你會得到一個字符串值,比如'10px',而不是int。如果是這樣,那麼在進行比較之前,您需要parseInt()這些值。 –
我試圖解析它們,但沒有運氣:/ –