1

<div>私のコードには 4 があります。JavaScript を使用して、それらを表示および非表示にしました。<div>管理が難しくなってきているので、特定のものが表示されているか非表示になっているかを検出する必要があります。これを行う方法がわかりません。これをどのようにコーディングしますか? JQuery または Jqtouch が適しています。ありがとう

4

5 に答える 5

3

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

于 2012-08-24T15:22:42.133 に答える
3

この関数は、あなたが望むことをするようです。表示なしと可視性非表示をチェックします。

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.
}

デモ

于 2012-08-24T15:34:10.490 に答える
1

私はあなたが何を隠したり見せたりしているのか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

}

コードを作成できるように、あなたが何をしているかの例を提供してください..

于 2012-08-24T15:24:52.687 に答える
0

document.elementFromPoint(x, y)を使用して、div の位置を x および y として渡し、それが適切なオブジェクトであることを確認できます。

これは、div の左上のポイントをカバーする要素が他にないことを前提としています。

そして、これは「目に見える」という意味に依存するかもしれません:「完全に見える」?「少なくとも少し見える」?スクロール位置のために表示されないビューポートの部分はどうですか? また、ブラウザ ウィンドウが部分的に画面の外にある場合 (これは難しいかもしれません) ?

于 2012-08-24T15:26:41.123 に答える
-1

divがどのように隠されているかによって異なりますが、おそらく使用できます

if(document.getElementById("myDiv").style.display=="none"){
    //do something
}
于 2012-08-24T15:27:27.030 に答える