2010-11-03 28 views
20

J'ai deux balises div, l'un est pour la recherche et l'autre est pour les résultats. Ce dont j'ai besoin, c'est quand on clique sur le bouton soumettre, les résultats sont retournés et placés dans la div de résultats (avec un iframe) et la div de recherche devrait être cachée et la div de résultats devrait être visible. Search div est initialement défini sur visible (en utilisant la visibilité visible) et le résultat div est initialement défini sur hidden (en utilisant la visibilité sur hidden).Faire un div visible et un autre invisible

Egalement, au départ, il y a un grand espace blanc en bas de la page où se trouve la div masquée, alors comment est-ce que je m'assure qu'il n'y a pas d'espace blanc supplémentaire en bas.

Répondre

18

Le rendre invisible avec la visibilité lui fait encore prendre de l'espace. Essayez plutôt de définir l'affichage sur none pour le rendre invisible, puis définissez l'affichage sur block pour le rendre visible.

+0

Fonctionne parfaitement !!! merci Mon autre moi – mattgcon

+1

Corrigez-moi si je me trompe, mais avec un iFrame vous devez le rendre visible et affiché, sinon certains navigateurs ne chargeront pas le contenu pour des raisons de sécurité. Cependant, vous pouvez faire 1x1px et opacité 0,01%. J'ai déjà rencontré ce problème avec un widget de téléchargement intersite. – CoolAJ86

+0

@ CoolAJ86: Je ne suis pas sûr. Je n'ai jamais utilisé un Iframe .... Ever –

8

Je ne pense pas que vous voulez vraiment un iframe, n'est-ce pas? À moins que vous ne fassiez quelque chose de bizarre, vous devriez retrouver vos résultats sous JSON ou (dans le pire des cas) XML, n'est-ce pas?

Pour votre boîte blanche/problème de l'espace supplémentaire, essayez

style="display: none;" 

au lieu de

style="visibility: hidden;" 
+0

oui en fait je le fais, eh bien je ne veux pas un mais il est requis par le client – mattgcon

26

Vous pouvez utiliser la propriété d'affichage du style. Intialy définir le style de section de résultat comme

style = "display:none" 

Ensuite, la div ne sera pas visible et il n'y aura pas d'espace blanc.

Une fois que les résultats de recherche sont le changement peuplaient la propriété d'affichage en utilisant le script java comme

document.getElementById("someObj").style.display = "block" 

En utilisant java script, vous pouvez faire la div invisible

document.getElementById("someObj").style.display = "none" 
+0

ou dans jQuery land $ () .show(); FWIW – rogerdpack

0

Si tu veux utiliser l'affichage = bloquez le lecteur de contenu, alors au lieu d'utiliser l'affichage, vous pouvez définir l'attribut de gauche sur une valeur négative qui n'existe pas dans votre page html pour être affichée, mais en fait elle le fait.

J'espère que vous devez comprendre mon point, si je suis incapable de vous faire comprendre, vous pouvez me le message.