J'utilise donc CSS: hover pour remplacer un arrière-plan de bouton de soumission. Quand je souris sur le bouton, l'ancienne image de fond disparaît (il semble donc que rien ne s'y trouve) pendant un moment puis réapparaît avec le nouvel arrière-plan. Je pensais que peut-être la taille du fichier image du bouton était trop grande, mais son seul 1.4kb. Y at-il un moyen d'empêcher cela, la mise en cache ou le préchargement, ou quelque chose du genre?Le bouton Soumettre disparaît lors du vol stationnaire puis redescend
Répondre
Est-ce uniquement sur l'affichage/le survol de la page initiale? Cela sera dû au fait que le fichier image est chargé uniquement sur demande, c'est-à-dire l'action de survol.
Pour éviter cela, les deux états des boutons doivent être stockés dans un seul fichier. Vous avez juste besoin d'ajuster la propriété background-position pour afficher la moitié correcte de l'image pour son état actuel.
Voici un exemple grossier (notez que button.png contient les deux états d'image et 40 pixels de haut):
button {
background-image: url(button.png);
width: 60px;
height: 20px;
background-position: 0 0;
}
button:hover {
background-position: 0 -20px;
}
Jetez un oeil à cet article: http://www.smashingmagazine.com/2009/04/27/the-mystery-of-css-sprites-techniques-tools-and-tutorials/ –
Stocké dans un seul fichier? Voulez-vous dire le fichier CSS? Les deux états sont dans le même fichier CSS. – Graham
J'ai édité ma réponse pour clarifier et a également fourni un exemple de base. – BrynJ
C'est parce qu'il faut du temps pour l'image « hover » pour télécharger avant qu'il affiche. Pour éviter cela, vous pouvez utiliser une technique d'image d'image-objet.
Vous pourriez, peut-être, utiliser une technique qui est similaire dans intention, mais pas exécution, à la réponse de Bryn, au-dessus.
.button {background-image: url(img/for/hover-state.png)
background-position: top left;
background-repeat: repeat-x;
background-color: #fff;
height: 1.5em;
width: 5em;
}
.button span
{background-image: url(img/for/non-hover-state.png);
background-position: top left;
background-repeat: repeat-x;
background-color: #000;
height: 1.5em;
width: 5em;
}
.button:hover span
{background-color: transparent;
background-image: none;
}
La similitude que j'ai mentionnée est d'avoir les deux images présentes sur le document afin d'éviter le flicker-hover. Au survol du bouton, l'image d'arrière-plan de l'étendue disparaît et révèle l'état du survol au lieu de devoir le charger à la demande. Le bonus est que, bien que j'ai spécifié le height
/width
ci-dessus cette technique fonctionnera pour le redimensionnement dynamique, ne comptant pas sur les tailles d'images de largeur fixe (ou c'est aussi fluide que votre conception peut le permettre) .
-1 pour une requête HTTP supplémentaire. Ne fonctionnera pas correctement pour les images transparentes. –
@Josh - c'est vrai qu'il y a une deuxième requête http, mais je trouve que le coût d'un kb supplémentaire est compensé par le bonus d'un design plus fluide. Et, pour autant que je sache, cela a répondu à la question posée. Chacun à leur propre bien. –
... le problème de l'image transparente est vraisemblablement dû au fait que le 'span' tel que décrit ci-dessus n'a pas de 'couleur de fond'. Ce n'est pas difficile à résoudre. Réponse éditée à adapter. –
- 1. jQuery: crossfade image sur vol stationnaire
- 2. opacité jQuery sur vol stationnaire
- 3. dijit.Tooltip --- comment désactiver le vol stationnaire?
- 4. simple vol stationnaire jQuery Menu
- 5. jQuery - Fading animation sur vol stationnaire
- 6. sélection des enfants jquery avec vol stationnaire
- 7. : vol stationnaire avec <span> éléments
- 8. Agrandir une image miniature sur le vol stationnaire
- 9. get soumettre l'ID du bouton
- 10. Prototype Element.toggle sur vol stationnaire, désactive avec childElements
- 11. désactiver correctement le bouton soumettre
- 12. Le bouton de retour de UINavigationController disparaît?
- 13. Le bouton Info disparaît de la vue
- 14. Soumettre le style de bouton dans IE
- 15. Comment mettre en surbrillance seulement le texte sur le vol stationnaire, pas les espaces? (javascript)
- 16. JQuery: Création d'un texte encadré qui s'affiche en haut d'un div sur le vol stationnaire
- 17. Détection du vol stationnaire sur des div invisibles superposés au format Flash dans IE7
- 18. Soumettre le bouton ne fonctionne pas
- 19. Comment puis-je soumettre un formulaire Web en cliquant sur le bouton du clavier?
- 20. Default soumettre style bouton formulaire
- 21. Comment activer le vol stationnaire sur un DIV particulier pour IE 6?
- 22. Forcer le curseur de contenu jQuery à faire une pause en vol stationnaire
- 23. Masquer Soumettre Bouton pour formulaire
- 24. Le clavier ne disparaît pas
- 25. Comment est-ce que je peux réparer ce comportement étrange de vol stationnaire d'ancre d'IE 8 img?
- 26. Comment augmenter la durée de vol stationnaire par défaut de l'attribut de titre <a> (info-bulle)
- 27. Jquery UI onglets: bug - lorsque vol stationnaire de la souris est sélectionné
- 28. AJAX: Comment soumettre le bouton après avoir appuyé sur "Entrée"?
- 29. Ajout de la couleur d'arrière-plan et de la bordure à la ligne du tableau lors du vol stationnaire à l'aide de jquery
- 30. jquery: balises imbriquées et vol stationnaire() ne fonctionne pas dans IE
Pouvez-vous poster le code HTML et CSS que vous utilisez? –