Help - Search - Members - Calendar
Full Version: Hide/Show Toggle
HTMLHelp Forums > Programming > Client-side Scripting
Slushie
Hopefully this will be an easy fix for someone.
I'm trying to implement the Hide/Show toggle at https://www.w3schools.com/howto/tryit.asp?f...oggle_hide_show

The script part of it is

<script>
function myFunction() {
var x = document.getElementById("myDIV");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>


My question is, the page always starts with the item being shown, not hidden. How do I make it when the page is first loaded the item is hidden, not shown?

Thanks for any help with this.
pandy
Basically you just need to set #myDIV to display: none since the script you already have checks if display is none and if it is it sets it to block. If display is something other than none it sets it to none. So it doesn't matter what it is to start with for the script to work.

But it's bad practice to hide a toggle object by default because users without JS can't make it visible. For that reason it's better to let JS hide it when the page loads. That way it will always be visible if JS isn't available. The whole script block would look something like this.

CODE
function myFunction() {
  var x = document.getElementById("myDIV");
  if (x.style.display === "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}


// New stuff below

function init()
{
   document.getElementById('myDIV').style.display = 'none';
}

window.onload = init;



The function I called init() will hide #myDIV. The last line (window.onload...) will run that function when the page loads.

I would place the whole script block in HEAD rather than where it is in the example at w3schools though. If nothing else, it's neater.
Slushie
Thank you pandy! smile.gif I appreciate it.

That worked perfectly.
pandy
Good. smile.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.