Je suis assez nouveau sur jQuery (et javascript d'ailleurs), donc c'est probablement juste quelque chose de stupide que je fais, mais ça m'ennuie vraiment! Tout ce que j'essaie de faire est d'ajouter une vitesse aux fonctions cacher et afficher de jQuery. Le code J'utilise est:Les effets jQuery ne fonctionnent pas lorsque j'ajoute une vitesse
for (var i in clouds) {
$(clouds[i]).click(function() {
$(this).hide();
});
}
cacher les nuages quand ils sont cliqué sur le bouton, et
function fadeLogo(state) {
var element=document.getElementById('logo');
if (state=='home') {
element.hide;
element.src='images/home.png';
element.show;
}
else {
element.hide;
element.src='images/webNameLogo.png';
element.show;
}
}
pour cacher une image, changer, puis le montrer à nouveau. Ceci est appelé par
onMouseOver=fadeLogo('home') onMouseOut=fadeLogo('logo')
Cela fonctionne très bien, mais se produit instantanément. Chaque fois que j'essaie d'inclure une vitesse, que ce soit «lent», «rapide» ou en millisecondes, cela ne fonctionne pas, ils restent simplement dans leur état d'origine. Même ajouter hide() sans une vitesse provoque une erreur dans la console d'erreur de Safari:
TypeError: Le résultat de l'expression 'element.hide' [undefined] n'est pas une fonction.
Aucune erreur n'est signalée pour les nuages, ils restent assis là sans rien faire!
Espérons que quelqu'un peut vous aider!
Merci
EDIT:
ont maintenant cela pour le changement d'image:
$(function() { //This function fades the logo to the home button on mouseover
$('.logo').hover(function() {
$(this).fadeOut(
'slow',
function() {
$(this).attr ('src','images/home.png').fadeIn('slow');
});
}, function() {
$(this).fadeOut(
'slow',
function() {
$(this).attr('src','images/webNameLogo.png').fadeIn('slow');
});
});
});
qui s'estompe l'image et en aucun problème, mais ne change pas entre les 2 images. .. Oups, aurait dû être #logo. Vous avez que l'on travaille maintenant, sur les nuages embêtants ...
Merci pour vos pensées. J'ai essayé d'ajouter "lent" aux nuages comme vous l'avez suggéré, mais quand je ne fais rien ne se passe quand je clique sur eux. En ce qui concerne les images, j'ai édité mon post pour montrer le code complet que j'utilise (et remplacé par bascule avec cacher/montrer au cas où il se retrouve dans le mauvais état). Comme les nuages, ça marche, mais pas quand j'ajoute une vitesse ... – Mike
Vous mélangez des méthodes jQuery et JavaScript. JavaScript n'a pas de méthode show/hide. Vous devez "convertir" votre objet DOM en un objet jQuery, vous pouvez ensuite utiliser ces méthodes. D'où viennent aussi les nuages? –
Hmmm ok. J'ai défini un tableau contenant 4 classes de nuages pour une manipulation ultérieure dans le script: var clouds = [". Cloud1", ". Cloud2", ". Cloud3", ". Cloud4"]; – Mike