Je suis tout nouveau sur jQuery et j'ai une certaine expérience de l'utilisation de Prototype. Dans Prototype, il existe une méthode pour "flasher" un élément - ie. mettez-le brièvement en surbrillance dans une autre couleur et faites-le revenir à la normale pour que l'œil de l'utilisateur y soit attiré. Existe-t-il une telle méthode dans jQuery? Je vois fadeIn, fadeOut et animer, mais je ne vois rien comme "flash". Peut-être que l'un de ces trois peut être utilisé avec des entrées appropriées?
249
$.fn.flash = function(times, duration) { var T = this; times = times || 3; duration = duration || 200; for ( var i=0; i < times; i++ ) { (function() { setTimeout(function() { T.fadeOut(duration, function() { T.fadeIn(duration); }); }, i*duration*2+50); })(i); } };
text-decoration:blink
puis supprimez-le.Réponses:
Ma voie est .fadein, .fadeout .fadein, .fadeout ......
Afficher l'extrait de code
la source
$('..').delay(100).fadeOut().fadeIn('slow')
var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
Vous pouvez utiliser le plugin jQuery Color .
Par exemple, pour attirer l'attention sur toutes les divs de votre page, vous pouvez utiliser le code suivant:
Modifier - Nouveau et amélioré
Ce qui suit utilise la même technique que ci-dessus, mais elle présente les avantages supplémentaires de:
Étendez l'objet jQuery:
Exemple d'utilisation:
la source
Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.
- Si vous souhaitez animer la couleur, vous avez besoin de l'interface utilisateur jQuery ou d'un autre plugin.Vous pouvez utiliser des animations CSS3 pour flasher un élément
Et vous jQuery pour ajouter la classe
la source
@keyframes
et lesanimation
règles, il n'est donc pas nécessaire d'utiliser des versions préfixées en plus peut-être-webkit-
(pour le navigateur Blackberry).Après 5 ans ... (Et aucun plugin supplémentaire nécessaire)
Celui-ci "l'impulsion" à la couleur que vous voulez (par exemple le blanc) en mettant une couleur d'arrière- plan div derrière elle, puis en fondant l'objet à l' intérieur puis à nouveau.
Objet HTML (par exemple bouton):
jQuery (vanilla, pas d'autres plugins):
élément - nom de classe
premier nombre en
fadeTo()
- millisecondes pour la transitiondeuxième nombre dans
fadeTo()
- l' opacité de l'objet après fondu / unfadeVous pouvez le vérifier dans le coin inférieur droit de cette page Web: https://single.majlovesreg.one/v1/
Modifier (willsteel) pas de sélection dupliquée en utilisant $ (this) et les valeurs pour effectuer acutally tordu un flash (comme l'OP a demandé).
la source
fadeTo(0000)
- Metallica$.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}
Vous pouvez alors l'appeler comme$('#mydiv').flashUnlimited();
- Il fait ce que Majal a répondu ci-dessus, et se rappelle à la fin du cycle.Vous pouvez utiliser l' effet de surbrillance dans l'interface utilisateur jQuery pour obtenir le même résultat, je suppose.
la source
Si vous utilisez jQueryUI, il y a une
pulsate
fonction dansUI/Effects
http://docs.jquery.com/UI/Effects/Pulsate
la source
pulsate
fonctionne bien dans Chrome.la source
fadeIn
etfadeOut
affectant d'autres éléments frères car cela fait basculer ladisplay
propriété css , regardez bizarre dans mon cas. Mais celui-ci résout le problème. Merci, cela fonctionne élégamment comme un charme.Vous pouvez utiliser ce plugin (le mettre dans un fichier js et l'utiliser via un script-tag)
http://plugins.jquery.com/project/color
Et puis utilisez quelque chose comme ceci:
Cela ajoute une méthode «flash» à tous les objets jQuery:
la source
Vous pouvez étendre la méthode de Desheng Li en permettant à un nombre d'itérations de faire plusieurs flashs comme ceci:
Ensuite, vous pouvez appeler la méthode avec une heure et un nombre de flashs:
la source
var iterationDuration = Math.floor(duration / iterations);
que vous puissiez diviser par des nombres impairs et fait enreturn this;
sorte que vous puissiez enchaîner d'autres méthodes après.Solution jQuery pure.
(pas besoin de jquery-ui / animate / color.)
Si tout ce que vous voulez, c'est cet effet "flash" jaune sans charger la couleur jquery:
Le script ci-dessus fait simplement un fondu jaune 1 s, parfait pour faire savoir à l'utilisateur que l'élément a été mis à jour ou quelque chose de similaire.
Usage:
la source
Cela peut être une réponse plus à jour et plus courte, car les choses se sont quelque peu consolidées depuis ce post. Nécessite jquery-ui-effect-highlight .
http://docs.jquery.com/UI/Effects/Highlight
la source
Que diriez-vous d'une réponse vraiment simple?
$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)
Clignote deux fois ... c'est tout le monde!
la source
Je ne peux pas croire que ce ne soit pas encore sur cette question. Tout ce que tu dois faire:
Cela fait exactement ce que vous voulez faire, est super facile, fonctionne à la fois
show()
et leshide()
méthodes.la source
Un
effet d'impulsion(hors ligne) Le plugin JQuery convient-il à ce que vous recherchez?Vous pouvez ajouter une durée pour limiter l'effet d'impulsion dans le temps.
Comme mentionné par JP dans les commentaires, il y a maintenant son plugin d'impulsion mis à jour .
Voir son dépôt GitHub . Et voici une démo .
la source
la source
J'ai trouvé ce nombre de lunes plus tard, mais si quelqu'un s'en soucie, il semble que ce soit une bonne façon de faire clignoter quelque chose en permanence:
la source
Les codes suivants fonctionnent pour moi. Définissez deux fonctions de fondu d'entrée et de sortie et placez-les dans le rappel l'une de l'autre.
Les éléments suivants contrôlent la durée des flashs:
la source
Je cherchais une solution à ce problème mais sans compter sur jQuery UI.
C'est ce que j'ai trouvé et cela fonctionne pour moi (pas de plugins, juste Javascript et jQuery); - Voici le violon qui travaille - http://jsfiddle.net/CriddleCraddle/yYcaY/2/
Définissez le paramètre CSS actuel dans votre fichier CSS en tant que CSS normal, et créez une nouvelle classe qui gère simplement le paramètre pour changer la couleur d'arrière-plan, et définissez-le sur '! Important' pour remplacer le comportement par défaut. comme ça...
Ensuite, utilisez simplement la fonction ci-dessous et passez l'élément DOM sous forme de chaîne, un entier pour le nombre de fois que vous souhaitez que le flash se produise, la classe que vous souhaitez modifier et un entier pour le retard.
Remarque: Si vous passez un nombre pair pour la variable 'times', vous vous retrouverez avec la classe avec laquelle vous avez commencé, et si vous passez un nombre impair, vous vous retrouverez avec la classe basculée. Les deux sont utiles pour différentes choses. J'utilise le «i» pour changer le temps de retard, sinon ils se déclencheraient tous en même temps et l'effet serait perdu.
la source
Comme fadein / fadeout, vous pouvez utiliser l'animation css / delay
Simple et flexible
la source
3000 est de 3 secondes
De l'opacité 1, elle passe à 0,3, puis à 1 et ainsi de suite.
Vous pouvez en empiler plus.
Seul jQuery est nécessaire. :)
la source
Il existe une solution de contournement pour le bogue d'arrière-plan animé. Cet élément comprend un exemple d'une méthode de surbrillance simple et son utilisation.
https://gist.github.com/1068231
la source
Si l'inclusion d'une bibliothèque est exagérée, voici une solution dont le fonctionnement est garanti.
Configuration du déclencheur d'événement
Définir la couleur d'arrière-plan de l'élément de bloc
Dans setTimeout, utilisez fadeOut et fadeIn pour créer un petit effet d'animation.
À l'intérieur du deuxième setTimeout réinitialiser la couleur de fond par défaut
Testé dans quelques navigateurs et ça marche bien.
la source
Malheureusement, la première réponse nécessite l'interface utilisateur JQuery. http://api.jquery.com/animate/
Voici une solution JQuery vanille
http://jsfiddle.net/EfKBg/
JS
CSS
HTML
la source
flash
un objet jQuery, cela fonctionne très bien.var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
Voici une version légèrement améliorée de la solution de colbeerhey. J'ai ajouté une déclaration de retour afin que, sous une véritable forme jQuery, nous enchaînions les événements après avoir appelé l'animation. J'ai également ajouté les arguments pour effacer la file d'attente et passer à la fin d'une animation.
la source
Celui-ci fera pulser la couleur d'arrière-plan d'un élément jusqu'à ce qu'un événement de survol se déclenche
la source
Réunissez tout cela à partir de tout ce qui précède - une solution simple pour flasher un élément et revenir à la couleur d'origine ...
Utilisez comme ceci:
J'espère que cela t'aides!
la source
eval
!Voici une solution qui utilise un mélange d'animations jQuery et CSS3.
http://jsfiddle.net/padfv0u9/2/
Essentiellement, vous commencez par changer la couleur de votre couleur "flash", puis utilisez une animation CSS3 pour laisser la couleur s'estomper. Vous devez modifier la durée de la transition pour que le "flash" initial soit plus rapide que le fondu.
Où les classes CSS sont les suivantes.
la source
donnez juste elem.fadeOut (10) .fadeIn (10);
la source
C'est suffisamment générique pour que vous puissiez écrire le code que vous souhaitez animer. Vous pouvez même réduire le délai de 300 ms à 33 ms et atténuer les couleurs, etc.
la source
vous pouvez utiliser le plugin jquery Pulsate pour forcer à concentrer l'attention sur n'importe quel élément html avec un contrôle sur la vitesse, la répétition et la couleur.
JQuery.pulsate () * avec des démos
exemple d'initialiseur:
la source