JavaScript ile DIV nasıl görünür ve görünmez yapılır?


113

Gibi bir şey yapabilir misin

function showDiv()
{
    [DIV].visible = true;
    //or something
}

1
Neden sadece Jquery kullanmıyorsunuz? .saklamak() ?
coderama

Bunu div adı için kullanır mıydım, yani div'in adı test olsaydı, kullanır mıydım test.hide()?

8
@JackStone: Hayır, bu sadece jQuery kitaplığını zaten kullanıyorsanız. Bazı insanlar bunu her JavaScript sorusunda tanıtmayı sever. Öyle olsanız bile, .hide()görünürlüğü ayarlamaz. Görüntüyü ayarlar.

6
@am değil, jQuery'nin gerçekten harika olduğunu ve her şeyi yaptığını anlamada açıkça başarısız oldunuz . (Resim kaynağı)
Pekka

8
Bunun gibi bir şey için iyi bir cevap hem düz bir JS çözümü hem de kitaplık kullanmanın avantajını gösteren bir çözüm içermelidir - bu durumda, bir öğeyi göstermek için kullanırken satır içi vs blok ile uğraşmak zorunda kalmazsınız display.
ThiefMaster

Yanıtlar:


139

[DIV] bir öğe ise o zaman

[DIV].style.visibility='visible'

VEYA

[DIV].style.visibility='hidden' 

16
visibilityelementin kapladığı alanın ayrılmış kalması gibi yan etkiye sahiptir. OP'nin istediği şey bu olabilir de olmayabilir de
Pekka

1
[DIV] yazan yere, div adımı yazardım değil mi?

20
Hayır, document.getElementById('id-of-the-div')yerine kullanın[DIV]
ThiefMaster

@JackStone: Bu, div'inizin "adı" ile ne demek istediğinize bağlıdır. Div'e başvuran bir değişkense, evet.

1
Yani benim div ismim testdivolsaydı, olurdu document.getElementById('testdiv').style.visibility = 'hidden';?

124

JQuery gibi bir kitaplık kullanmadığınızı varsayalım.

DOM öğesine henüz bir referansınız yoksa, şunu kullanarak alın var elem = document.getElementById('id');

Daha sonra bu öğenin herhangi bir CSS özelliğini ayarlayabilirsiniz. Göstermek / gizlemek için iki özellik kullanabilirsiniz: displayve visibilitybiraz farklı etkileri olan:

Ayarlama style.display, öğe hiç yokmuş gibi görünecektir ("kaldırılmış").

elem.style.display = 'none'; // hide
elem.style.display = 'block'; // show - use this for block elements (div, p)
elem.style.display = 'inline'; // show - use this for inline elements (span, a)

veya style.visibilitygerçekte div'in hala orada olmasını sağlar, ancak "tümü boş" veya "tamamen beyaz" olur

elem.style.visibility = 'hidden'; // hide, but lets the element keep its size
elem.style.visibility = 'visible';

JQuery kullanıyorsanız, displayözelliği ayarlamak istediğiniz sürece bunu daha da kolay yapabilirsiniz :

$(elem).hide();
$(elem).show();

Otomatik olarak uygun displaydeğeri kullanacaktır ; öğe türünü (satır içi veya blok) önemsemeniz gerekmez. Ek olarak, elemyalnızca bir DOM öğesi değil, aynı zamanda #idveya .classveya geçerli CSS3 (ve daha fazlası!) Gibi herhangi bir şey gibi bir seçici de olabilir .


Cevabınızı tercih ederim ama sanırım elem.style.display = 'none' kullanmanız gereken küçük bir düzeltme var;
Saumil


29

Sen kullanabilirsiniz visibilityveya displayancak değişiklikleri uygulamak zorunda div.stylenesne değil, divnesne kendisi.

var div = document.getElementById('div_id');

// hide
div.style.visibility = 'hidden';
// OR
div.style.display = 'none';

// show
div.style.visibility = 'visible';
// OR
div.style.display = 'block';

div.style.visibility = falsebenim için Chrome'da çalışmıyor. trueGörünüşe göre bu kısım tesadüfen daha çok çalışıyor çünkü mülkü bozuyor (Olumsuz oyum değil)
Pekka

Boole özellikleri ne displayde değildir visibility. Bunun yanı sıra, noneve blockgerek bunlar .. dizeleri beri teklif edilecek
ThiefMaster

etiketler için yanlış değerler. Bunlar şimdi işe yarıyor ve hayır, bunu kandırmayacağım, bu çok basit.
zellio

5

DOM işlevlerini kullanabilirsiniz: setAttribute ve removeAttribute. Aşağıdaki bağlantıda bunları nasıl kullanacağınıza dair bir örnek var.

setAttribute ve removeAttribute işlevleri

Hızlı bir görünüm:

hide:    document.getElementById("myDiv").setAttribute("hidden","");
unhide:  document.getElementById("myDiv").removeAttribute("hidden");

2
Cevabınızı geliştirebilir misiniz? Örnek ve açıklamalarla.
Gaël Barbin

1

Sen kullanabilirsiniz opacitybenzer olan visibility fakat geçişi kolaylaştırmak ve yükseklik gibi diğer parametreleri kontrol etmesine izin (pasajı basitlik için doğrudan html içinde js mantığı koymak - Prodüksiyon kodunda bunu yapmayın)


0

DOM öğesinin "gizli" özelliğini kullanın:

function showDiv(isVisible)
{
    [DIV].hidden = !isVisible;
}

0

CSS kullanarak Görünmez yapın

#div_id {
        /*height: 400px;*/
         visibility:hidden;
    }

Javascript Kullanarak Görünür Yapın

document.getElementById('div_id').style.visibility = 'visible';
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.