J'ai besoin d'un lien qui clignote toutes les 500 millisecondes, pendant une durée de 5 secondes... Je me souviens qu'il y a longtemps, j'avais un lien de ce type, mais je l'ai supprimé parce qu'on ne pouvait cliquer dessus que lorsqu'il était visible. Existe-t-il un moyen de contourner ce problème ?
Réponses
Trop de publicités?Essayez ça :
<script type="text/javascript">
var col = new String();
var x=1;var y;
function blink()
{
if(x%2)
{
col = "rgb(255,0,0)";
}else{
col = "rgb(255,255,255)";
}
aF.style.color=col;x++;if(x>2){x=1};setTimeout("blink()",500);
}
</script>
<body onload="blink()">
<a id="aF" href="http://www.google.com"><b>*Google!*</b><br>
Il existe une fonction JavaScript dans script.aculo.us pour le faire : Regardez sur Effet.pulsé
N'oubliez pas de toujours garder à l'esprit la facilité d'utilisation pour tous les utilisateurs. Surtout si vous faites clignoter quelque chose à une certaine fréquence. Soyez juste prudent.
Une version rapide de JQuery UI... Les liens ont besoin de CLASS 'flasher', et d'un ID.
Il commencera au passage de la souris... et s'arrêtera au retrait de la souris.
Ajoutez également la couleur secondaire au survol du lien 'A'... cela aidera à masquer le retard de l'intervalle initial au départ.
var flashInterval;
var flasherId;
var firstColor = '#EF7F2C';
var secondaryColor = '#3296C8';
var flashTime = 300;
jQuery('a.flasher').mouseover(function() {
if(flasherId){ jQuery('#'+flasherId).animate({ color:firstColor},0); }//stop any previous flashing link
flasherId = jQuery(this).attr('id');//get id of current link
//set interval
flashInterval = setInterval(function(){ jQuery('#'+flasherId).animate({ color:secondaryColor},flashTime).animate({ color:firstColor},flashTime); },flashTime*2);
}).mouseout(function() {
clearInterval(flashInterval);//clear interval
jQuery('#'+flasherId).animate({ color:firstColor},0);//reset flasher
flasherId = '';//clear flasher var
});