公告
财富商城
积分规则
提问
发文
2018-12-31 21:49发布
还给你的自由
Hopefully this is an easy question. I have a div that I want to toggle hidden/shown with a button.
<div id="newpost">
This is how I hide and show content using a class. changing the class to nothing will change the display to block, changing the class to 'a' will show the display as none.
<!DOCTYPE html> <html> <head> <style> body { background-color:#777777; } block1{ display:block; background-color:black; color:white; padding:20px; margin:20px; } block1.a{ display:none; background-color:black; color:white; padding:20px; margin:20px; } </style> </head> <body> <button onclick="document.getElementById('ID').setAttribute('class', '');">Open</button> <button onclick="document.getElementById('ID').setAttribute('class', 'a');">Close</button> <block1 id="ID" class="a"> <p>Testing</p> </block1> </body> </html>
Look at jQuery Toggle
HTML:
<div id='content'>Hello World</div> <input type='button' id='hideshow' value='hide/show'>
jQuery:
jQuery(document).ready(function(){ jQuery('#hideshow').live('click', function(event) { jQuery('#content').toggle('show'); }); });
For versions of jQuery 1.7 and newer use
jQuery(document).ready(function(){ jQuery('#hideshow').on('click', function(event) { jQuery('#content').toggle('show'); }); });
Demo
You could use the following:
mydiv.style.display === 'block' = (mydiv.style.display === 'block' ? 'none' : 'block');
Pure JavaScript:
var button = document.getElementById('button'); // Assumes element with id='button' button.onclick = function() { var div = document.getElementById('newpost'); if (div.style.display !== 'none') { div.style.display = 'none'; } else { div.style.display = 'block'; } };
SEE DEMO
$("#button").click(function() { // assumes element with id='button' $("#newpost").toggle(); });
Element.style
var toggle = document.getElementById("toggle"); var content = document.getElementById("content"); toggle.addEventListener("click", function() { content.style.display = (content.dataset.toggled ^= 1) ? "block" : "none"; });
#content{ display:none; }
<button id="toggle">TOGGLE</button> <div id="content">Some content...</div>
About the ^ bitwise XOR as I/O toggler https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset
^
.classList.toggle()
var toggle = document.getElementById("toggle"); var content = document.getElementById("content"); toggle.addEventListener("click", function() { content.classList.toggle("show"); });
#content{ display:none; } #content.show{ display:block; /* P.S: Use `!important` if missing `#content` (selector specificity). */ }
.toggle()
.fadeToggle()
.slideToggle()
$("#toggle").on("click", function(){ $("#content").toggle(); // .fadeToggle() // .slideToggle() });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="toggle">TOGGLE</button> <div id="content">Some content...</div>
.toggleClass()
.toggle() toggles an element's display "block"/"none" values
display
"block"/"none"
$("#toggle").on("click", function(){ $("#content").toggleClass("show"); });
<summary>
<details>
(unsupported on IE and Opera Mini)
<details> <summary>TOGGLE</summary> <p>Some content...</p> </details>
checkbox
[id^=toggle], [id^=toggle] + *{ display:none; } [id^=toggle]:checked + *{ display:block; }
<label for="toggle-1">TOGGLE</label> <input id="toggle-1" type="checkbox"> <div>Some content...</div>
radio
[id^=switch], [id^=switch] + *{ display:none; } [id^=switch]:checked + *{ display:block; }
<label for="switch-1">SHOW 1</label> <label for="switch-2">SHOW 2</label> <input id="switch-1" type="radio" name="tog"> <div>1 Merol Muspi...</div> <input id="switch-2" type="radio" name="tog"> <div>2 Lorem Ipsum...</div>
:target
(just to make sure you have it in your arsenal)
[id^=switch] + *{ display:none; } [id^=switch]:target + *{ display:block; }
<a href="#switch1">SHOW 1</a> <a href="#switch2">SHOW 2</a> <i id="switch1"></i> <div>1 Merol Muspi ...</div> <i id="switch2"></i> <div>2 Lorem Ipsum...</div>
If you pick one of JS / jQuery way to actually toggle a className, you can always add animated transitions to your element, here's a basic example:
className
var toggle = document.getElementById("toggle"); var content = document.getElementById("content"); toggle.addEventListener("click", function(){ content.classList.toggle("appear"); }, false);
#content{ /* DON'T USE DISPLAY NONE/BLOCK! Instead: */ background: #cf5; padding: 10px; position: absolute; visibility: hidden; opacity: 0; transition: 0.6s; -webkit-transition: 0.6s; transform: translateX(-100%); -webkit-transform: translateX(-100%); } #content.appear{ visibility: visible; opacity: 1; transform: translateX(0); -webkit-transform: translateX(0); }
<button id="toggle">TOGGLE</button> <div id="content">Some Togglable content...</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script> $(document).ready(function(){ $('#hideshow').click(function(){ $('#content').toggle('show'); }); }); </script>
And the html
最多设置5个标签!
This is how I hide and show content using a class. changing the class to nothing will change the display to block, changing the class to 'a' will show the display as none.
Look at jQuery Toggle
HTML:
jQuery:
For versions of jQuery 1.7 and newer use
Demo
You could use the following:
mydiv.style.display === 'block' = (mydiv.style.display === 'block' ? 'none' : 'block');
Pure JavaScript:
SEE DEMO
jQuery:
SEE DEMO
JavaScript - Toggle
Element.style
MDNAbout the
^
bitwise XOR as I/O togglerhttps://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset
JavaScript - Toggle
.classList.toggle()
jQuery - Toggle
.toggle()
Docs;.fadeToggle()
Docs;.slideToggle()
DocsjQuery - Toggle
.toggleClass()
Docs.toggle()
toggles an element'sdisplay
"block"/"none"
valuesHTML5 - Toggle using
<summary>
and<details>
(unsupported on IE and Opera Mini)
HTML - Toggle using
checkbox
HTML - Switch using
radio
CSS - Switch using
:target
(just to make sure you have it in your arsenal)
Animating class transition
If you pick one of JS / jQuery way to actually toggle a
className
, you can always add animated transitions to your element, here's a basic example:And the html