2010-08-10 5 views
0

J'ai rails voir avec ce html:rails et scriptaculous apparaissent effet

<body onload='<%= visual_effect(:appear, :main_counter, :duration=>3.0) %>'> 
    <div class="counter" id="main_counter">some content</div> 
</body> 

et une feuille de style:

.counter{ 
    opacity:0; 
} 

L'effet fonctionne comme prévu, mais quand son fait du texte de la div disparaît, je Je devine que l'opacité remonte à 0. Comment puis-je le faire rester avec une opacité complète?

Répondre

1

Le problème est que l'effet d'apparence supprime le style d'opacité de l'élément une fois qu'il est fait. la solution la plus simple est d'enlever le opacity: 0; de la feuille de style et de le mettre directement sur le div avec style="opacity: 0". C'est un peu moche, à cause du style inline. Antoher solution serait d'utiliser l': de l'option dans l'appel visual_effect comme ceci:

visual_effect(:appear, :main_counter, :duration=>3.0, :from => 0) 

De cette façon, l'effet serait d'abord définir l'opacité à 0. Toutefois, si vos pages prend un certain temps à charger, il pourrait être que la div est visible jusqu'à ce que l'événement on_load soit déclenché. Je suis curieux de ne jamais être tombé dessus, ça m'embête un peu que je ne peux pas penser à une "bonne" solution.

+0

essayé, a bien fonctionné. Merci :) –

Questions connexes