คุณสามารถทำสิ่งที่ชอบ
function showDiv()
{
[DIV].visible = true;
//or something
}
.hide()
อย่าตั้งค่าการเปิดเผย มันตั้งค่าการแสดงผล
display
เพื่อแสดงองค์ประกอบ
คุณสามารถทำสิ่งที่ชอบ
function showDiv()
{
[DIV].visible = true;
//or something
}
.hide()
อย่าตั้งค่าการเปิดเผย มันตั้งค่าการแสดงผล
display
เพื่อแสดงองค์ประกอบ
คำตอบ:
ถ้า [DIV] เป็นองค์ประกอบแล้ว
[DIV].style.visibility='visible'
หรือ
[DIV].style.visibility='hidden'
visibility
มีผลข้างเคียงว่าพื้นที่ที่ครอบครองโดยองค์ประกอบยังคงสงวนไว้ นั่นอาจเป็นสิ่งที่ OP ต้องการหรือไม่ก็ได้
document.getElementById('id-of-the-div')
แทน[DIV]
สมมติว่าคุณไม่ได้ใช้ไลบรารีเช่น jQuery
หากคุณยังไม่มีการอ้างอิงถึงองค์ประกอบ DOM ให้รับหนึ่งโดยใช้ var elem = document.getElementById('id');
จากนั้นคุณสามารถตั้งค่าคุณสมบัติ CSS ขององค์ประกอบนั้น ในการแสดง / ซ่อนคุณสามารถใช้คุณสมบัติสองอย่าง: display
และvisibility
ซึ่งมีลักษณะพิเศษที่แตกต่างกันเล็กน้อย:
การปรับstyle.display
จะดูเหมือนว่าไม่มีองค์ประกอบอยู่เลย ("ลบออก")
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)
หรือstyle.visibility
จะทำให้ div ยังคงอยู่ที่นั่น แต่เป็น "all empty" หรือ "all white"
elem.style.visibility = 'hidden'; // hide, but lets the element keep its size
elem.style.visibility = 'visible';
หากคุณใช้ jQuery คุณสามารถทำได้ง่ายขึ้นตราบเท่าที่คุณต้องการตั้งค่าdisplay
คุณสมบัติ:
$(elem).hide();
$(elem).show();
มันจะใช้display
ค่าที่เหมาะสมโดยอัตโนมัติ คุณไม่ต้องสนใจประเภทองค์ประกอบ (แบบอินไลน์หรือบล็อก) นอกจากนี้elem
ไม่เพียง แต่สามารถเป็นองค์ประกอบ DOM แต่ยังเป็นตัวเลือกเช่น#id
หรือ.class
หรือสิ่งอื่น ๆ ที่เป็น CSS3 ที่ถูกต้อง (และอื่น ๆ !)
คุณสามารถใช้visibility
หรือdisplay
แต่คุณต้องใช้การเปลี่ยนแปลงกับdiv.style
วัตถุไม่ใช่div
วัตถุนั้นเอง
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 = false
ไม่ทำงานสำหรับฉันใน Chrome และtrue
ดูเหมือนว่าส่วนนี้จะทำงานมากขึ้นโดยไม่ได้ตั้งใจเนื่องจากไม่ได้ตั้งค่าคุณสมบัติ (ไม่ใช่การลงคะแนนของฉัน)
display
มิได้visibility
เป็นทรัพย์สินบูล นอกจากนั้นnone
และblock
จำเป็นต้องยกมาเนื่องจากเป็นสตริง ..
คุณสามารถใช้ฟังก์ชัน DOM: setAttribute และ removeAttribute ในลิงค์ต่อไปนี้คุณมีตัวอย่างวิธีการใช้งาน
setAttribute และฟังก์ชัน removeAttribute
มุมมองอย่างรวดเร็ว:
hide: document.getElementById("myDiv").setAttribute("hidden","");
unhide: document.getElementById("myDiv").removeAttribute("hidden");
คุณสามารถใช้opacity
สิ่งที่คล้ายกับvisibility
แต่อนุญาตให้เปลี่ยนได้อย่างราบรื่นและควบคุมพารามิเตอร์อื่น ๆ เช่นความสูง (สำหรับความเรียบง่ายของตัวอย่างฉันใส่ js logic ใน html โดยตรง - อย่าทำในรหัสการผลิต)
ใช้แอตทริบิวต์ "hidden" ขององค์ประกอบ DOM:
function showDiv(isVisible)
{
[DIV].hidden = !isVisible;
}
ทำให้มองไม่เห็นโดยใช้ CSS
#div_id {
/*height: 400px;*/
visibility:hidden;
}
ทำให้มองเห็นได้โดยใช้ Javascript
document.getElementById('div_id').style.visibility = 'visible';