簡體   English   中英

如果有條件,如何使用JavaScript比較CSS樣式值?

[英]How do I compare css style values using JavaScript if conditions?

我有一個快速的問題。 如果我想將樣式的左/右值與另一個坐標(讓我們說鼠標)進行比較,該怎么做?

這是我在沒有鼠標坐標的情況下嘗試執行的操作,但是由於某種原因,我的條件無法執行...

<style>
    #container
    {
        position:absolute;
        left:400px;
        top:200px;
    }
</style>

<script>
function moveExit(){    
    var containerId = document.getElementById("container").style;

    if(containerId.left == 400 + "px")
        containerId.left = 395 + "px";  
}
</script>

這是我的身體:

<body>
    <div id="container">
    <img
    src="Images/image.jpg"
    onmouseover="moveExit();"
    />
    </div>
</body>

這是我第一次玩javascript。

為此,您需要使用計算樣式。

如何獲得計算風格?

var left = window.getComputedStyle(document.getElementById("container")).left

對於IE8,您必須使用currentStyle屬性,因為不支持計算樣式。

document.getElementById("container").currentStyle.left

跨瀏覽器(IE8-)的getComputedStyle與Javascript?

嘗試這樣的事情:

http://jsfiddle.net/xtJA4/

$(document).ready( function() {
    $("#container").mouseleave(function() {
        if ($(this).css("left")=="400px") {
            alert("Left = 400px");
        }
    });
});

當然可以對此進行更改,但是對於您所需要的它應該可以正常工作。 您當然可以去更改alert()函數以使其符合您的需要(修改左偏移量),但是希望這會有所幫助!

雖然我不是100%不確定您要完成什么,但是這里有一些注釋和建議。

我將使用jQuery而不是用戶javascript 這是David先前建議的。 jQuery的一大優點是它可以解決大多數瀏覽器不兼容的問題。

要使用jQuery完成此操作,您需要導入jquery,然后可以像這樣使用它:

<script type="text/javascript" src="./jquery/jquery.js"></script>

<script type="text/javascript">
    function moveExit(){
        var $element = jQuery('#container');

        $element.css('left', '350px');
    }
</script>

另請注意,我已將“ type”屬性添加到腳本元素。

作為一個旁注,我還要提醒您向img元素添加“ alt”屬性。 對於可訪問性以及由於任何原因阻止圖像時均適用。

可以更好地了解您要完成的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM