有幾種方法可以做到這一點(我知道)。什麼是測試DOM中元素的最佳方式
測試的CSS顯示
if ($('#foo').css('display') == 'none')
測試能見度
if ($('#foo').is(':visible'))
在能見度我可以檢查,如果該元素是存在的。
如果元素消耗文檔中的空間,則認爲它們是可見的。 可見元素的寬度或高度大於零。
具有可見性的元素:隱藏或不透明度:0被視爲可見, ,因爲它們仍佔用佈局中的空間。
但是,請注意,我都無法測試可見性(用戶),因爲:
隱藏一個元素可以由顯示屬性設置爲 完成「無」或可見性屬性爲「隱藏」。但是,請注意 這兩種方法產生不同的結果:
知名度:隱藏的隱藏元素,但它仍然會像以前一樣佔用相同 空間。該元素將被隱藏,但仍會影響 佈局。
顯示:沒有隱藏一個元素,它不會佔用任何空間。該 元素會被隱藏,並且頁面將顯示,如果 元素是不是有:
所以在沒有我測試的例子,如果該元素是可見的所有感官的用戶。
所以我的問題是:
- 從算什麼上面兩個,如果的代碼之間的區別是什麼?
- 什麼是測試如果一個元素是對用戶可見的最好辦法:
我應該有使用類似:
if ($('#foo').is(':visible') &&
$('#foo').css('opacity') > 0 &&
$('#foo').css('visibility') != 'hidden')
你有沒有嘗試過的代碼最後一塊來看看是否可行? –
** 1。**測試用戶是否可見元素的最佳方法是什麼? >>'$('#foo')。is(':visible')'是檢查元素是否對用戶可見的最好方法(意思是顯示)** 2。**兩個if是從上面的代碼? >>你引用了'visible'和'display'之間的區別。那麼現在,你的問題是什麼? –
對於一個完全可見的元素,通過'z-index'將另一個元素放置在它上面呢?如果這個最頂級的div有不透明的背景呢?還是透明的?或者*部分*透明的? 「以下」元素是否被視爲可見? – Jon