我正在尋找一種使用jQuery(或普通JS)的方法,在該方法中針對div是否具有特定的css特性來構建條件。jQuery添加基於CSS特徵的類
例如,我希望jQuery在另一個元素設置爲'display:none'時將'position:fixed'添加到元素的CSS,但當第二個元素返回到'position:relative'時,更改爲'display:block'。
任何想法?
我正在尋找一種使用jQuery(或普通JS)的方法,在該方法中針對div是否具有特定的css特性來構建條件。jQuery添加基於CSS特徵的類
例如,我希望jQuery在另一個元素設置爲'display:none'時將'position:fixed'添加到元素的CSS,但當第二個元素返回到'position:relative'時,更改爲'display:block'。
任何想法?
如果你的變化是事件驅動的,你只需將代碼添加到您的事件處理程序 所以如果元素一個由通過點擊隱藏 - 使元件2位置固定
$("#element_one").click(function(){
$("#element_one").hide();
$("#element_two").css({"position":"fixed"});
})
,如果你只是想觀看的元素你將需要定時器(雖然我真的不能想象這樣一個場景,你不要被programaticaly的一個事件觸發的變化)
watchInterval = setInterval("watchMe()",10)
function watchMe(){
if ($("element_one").is(":hidden")) {
$("#element_two").css({"position":"fixed"});
}
}
$('#elOne').css('display') == 'none' ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'});
這會做詭計嗎?
或者是:
$('#elOne').is(':hidden') ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'});
有不這樣做,你的任何很好的方式,不能「間諜」的CSS的變化,雖然jQuery不會有watch plugn可以監視某些屬性的變化。你最好的選擇是使用getComputedStyle
,它將得到用於任何對象的真正的CSS值並相應地採取行動。
我不認爲這會工作,但我改變了一些腳本並你提供的第一個解決方案最終工作。 – Alexander 2011-05-12 20:11:09