2010-11-13 45 views
0

Je suis à la recherche d'un bon plugin de sélection de bulles verticales.jQuery bulle verticale chapiteau éléments HTML

Pas simple chapiteau vertical, je suis à la recherche d'un bon plugin effets "flash like", quelque chose de lisse avec chapiteau élément de bas en haut d'un contenu div.

Peut-être vraiment sympa, mais je pense qu'il est seulement dans mes rêves ce plugin

+0

pourrait vous donner un exemple? – chchrist

Répondre

0

Voulez-vous dire quelque chose comme The Silky Smooth Marquee plugin?

+0

uhmmmmm ..... uhmmmmm .... pas du tout: P – memento

+0

je veux dire que je voudrais bouillonner somenthing ou avec un bon effet: P – memento

1

Eh bien, il est pas très efficace, mais cela est un bon début, je pense:

jQuery.fn.verticalMarquee = function(vertSpeed, horiSpeed) { 
    this.css('float', 'left'); 

    vertSpeed = vertSpeed || 1; 
    horiSpeed = 1/horiSpeed || 1; 

    var windowH = this.parent().height(), 
     thisH = this.height(), 
     parentW = (this.parent().width() - this.width())/2, 
     rand = Math.random() * 1000, 
     current = this; 

    this.css('margin-top', windowH + thisH); 
    this.parent().css('overflow', 'hidden'); 

    setInterval(function() { 
     current.css({ 
      marginTop: function(n, v) { 
       return parseFloat(v) - vertSpeed; 
      }, 
      marginLeft: function(n, v) { 
       return (Math.sin(new Date().getTime()/(horiSpeed * 1000) + rand) + 1) * parentW; 
      } 
     }); 
    }, 15); 

    setInterval(function() { 
     if (parseFloat(current.css('margin-top')) < -thisH) { 
      current.css('margin-top', windowH + thisH); 
     } 
    }, 250); 
}; 

$('.message').verticalMarquee(0.5, 1); 

Il utilise Math.sin pour déplacer l'élément horizontalement. La fonction verticalMarquee accepte deux arguments, l'un pour la vitesse verticale et l'autre pour la vitesse horizontale. La fonction ne peut être appelée que sur des objets jQuery qui ne contiennent qu'un seul élément - pendant le test, plus d'un élément a été animé en même temps, ce qui a provoqué un retard important.

Voir une simple démo ici: http://jsfiddle.net/CcccQ/2/