Est-il possible de survoler un élément déjà caché? J'essaie d'imiter ce que Steam fait avec leur navigation par flèches sur leur page d'accueil. Vous remarquerez que lorsque vous accédez à la page pour la première fois, aucune flèche ne s'affiche:
Ensuite, lorsque vous survolez la zone où devrait se trouver une flèche, celle-ci s’affiche:
J'ai essayé de régler mes divs contenant les images de flèche sur display: none
et j'ai également essayé visibility: hidden
mais aucune ne semble fonctionner avec les méthodes de survol ou de survol de la souris dans jQuery. J'aurais pensé que visibility: hidden
le ferait fonctionner, mais cela ne semble pas être le cas. Existe-t-il un autre moyen de cacher ces divs dès le début, tout en pouvant faire en sorte que des événements survolés fonctionnent?
Réglez-le à l'opacité zéro à la place:
$('#blah').hover(function() {
$(this).fadeTo(1,1);
},function() {
$(this).fadeTo(1,0);
});
Vous ne pouvez pas survoler un élément invisible ou un élément non affiché. Vous pouvez survoler un élément visible, puis l'utiliser pour afficher un autre élément précédemment masqué. Vous pouvez également survoler un élément transparent et le rendre opaque.
CSS:
#it {
opacity: 0;
width: 500px;
height:500px;
}
#it:hover {
opacity: 1;
}
Voici un exemple montrant un élément quand un autre est survolé:
HTML:
<div id="me">Hover over me to display something else</div>
<div id="else">Something else</div>
jQuery:
$("#me").hover(function(){
$("#else").show();
},function(){
$("#else").hide();
});
Utilisez la méthode .fadeTo
jQuery pour modifier l'opacité de l'élément en état de survol.
Le site jQuery contient un exemple mais cela devrait suffire
$("element").hover(//On Hover Callback
function() {$(this).fadeOut(100);} ,
//Off Hover Callback
function() {$(this).fadeIn(500);})
Depuis la page jQuery Hover .
Vous pouvez le définir sur opacity: 0
.
Afin de le rendre multi-navigateur, vous voudrez probablement le faire avec jQuery tho.
Une solution consiste à utiliser un div test alternatif, tel qu’il n’a pas de contenu, mais lorsqu’il survole, il affiche le div "flèche". Lorsque le div "arrow" (ou le div de test de frappe) est quitté, le div "arrow" est à nouveau masqué.
Vous pouvez également utiliser le même div pour le test de sélection et la "flèche", de sorte qu'une image d'arrière-plan soit utilisée pour les éléments visuels du div. Une fois survolé, vous pouvez indiquer au décalage de l’image de se positionner sur la "flèche". Une fois quitté, vous définissez le décalage de l'arrière-plan sur une position où l'image de la flèche ne serait plus affichée.
Enfin, si le contenu doit toujours se trouver à la même position que la zone de test, vous pouvez définir l'opacité de la div sur zéro et basculer en conséquence.
Vous pouvez définir l'opacité des éléments sur 0. Cela leur permettrait de recevoir les événements survolés (en fait, mouseenter et mouseleave), mais en pratique, les rendre invisibles aux utilisateurs.