<div>
私のコードには 4 があります。JavaScript を使用して、それらを表示および非表示にしました。<div>
管理が難しくなってきているので、特定のものが表示されているか非表示になっているかを検出する必要があります。これを行う方法がわかりません。これをどのようにコーディングしますか? JQuery または Jqtouch が適しています。ありがとう
5 に答える
jQuery を使用できる場合は、以下を使用できます。
$( "yourDivSelector" ).is( ":visible" );
jQuery がなくても、次のことができます。
alert( isVisible( "divOne" ) );
alert( isVisible( "divTwo" ) );
alert( isVisible( "divThree" ) );
function isVisible( elementId ) {
var element = document.getElementById( elementId );
return window.getComputedStyle( element, null ).display != "none";
}
jsFiddle: http://jsfiddle.net/davidbuzatto/N3wf6/
詳細はwindow.getComputedStyle
こちら: https://developer.mozilla.org/en-US/docs/DOM/window.getComputedStyle
この関数は、あなたが望むことをするようです。表示なしと可視性非表示をチェックします。
JavaScript 関数による DOM 要素の可視性のチェック
function isVisible(obj)
{
if (obj == document) return true
if (!obj) return false
if (!obj.parentNode) return false
if (obj.style) {
if (obj.style.display == 'none') return false
if (obj.style.visibility == 'hidden') return false
}
//Try the computed style in a standard way
if (window.getComputedStyle) {
var style = window.getComputedStyle(obj, "")
if (style.display == 'none') return false
if (style.visibility == 'hidden') return false
}
//Or get the computed style using IE's silly proprietary way
var style = obj.currentStyle
if (style) {
if (style['display'] == 'none') return false
if (style['visibility'] == 'hidden') return false
}
return isVisible(obj.parentNode)
}
使用例
if (isVisible(document.getElementById("myelement"))) {
// Element is visible.
}
私はあなたが何を隠したり見せたりしているのか100%わかりません...
ただし、表示などの属性を設定する場合
それから..
function elementhidden()
{
1. Get your element
2. Check the elemnet atrribute status
3. If its hide value then return true
4. If its show value then return false
}
コードを作成できるように、あなたが何をしているかの例を提供してください..
document.elementFromPoint(x, y)を使用して、div の位置を x および y として渡し、それが適切なオブジェクトであることを確認できます。
これは、div の左上のポイントをカバーする要素が他にないことを前提としています。
そして、これは「目に見える」という意味に依存するかもしれません:「完全に見える」?「少なくとも少し見える」?スクロール位置のために表示されないビューポートの部分はどうですか? また、ブラウザ ウィンドウが部分的に画面の外にある場合 (これは難しいかもしれません) ?
divがどのように隠されているかによって異なりますが、おそらく使用できます
if(document.getElementById("myDiv").style.display=="none"){
//do something
}