2010-07-30 4 views
1

J'utilise un flux météo pour afficher la météo sur une page. Je veux faire défiler 2 endroits ou plus à, disons, 5 secondes d'intervalle.Parcourez les javascripts distants pour créer un chargeur météo multiple

Je pensais pouvoir adapter quelque chose comme How can I cycle through pages? mais je n'ai pas eu de chance.

Le code source est la suivante pour 3 RSS que je voudrais sans cesse à travers le cycle à intervalle:

<script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=3000"></script> 

<script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=3690"></script> 

<script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=2000"></script> 

Merci à l'avance.

Répondre

0

Comme ces widgets utilisent document.write(), je voudrais juste sortie tous les trois à la page d'abord, dans une liste non ordonnée peut-être, et le cycle juste par montrant et cacher eux.

Ainsi, en utilisant le balisage comme ceci:

<ul id="cycle"> 
    <li><script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=3000"></script></li> 
    <li><script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=3690"></script></li> 
    <li><script type="text/javascript" src="http://www.weatherzone.com.au/woys/graphic_current.jsp?postcode=2000"></script></li> 
</ul> 

Vous pouvez utiliser jQuery pour faire quelque chose comme ceci:

jQuery(function($) { 

    var items = $('#cycle li'), // elements to be cycled through 
     interval = 2000,  // time between cycles 
     i = 0; 

    // hides all the elements, except the first one 
    items.not(":first").each(function() {$(this).hide()}) 

    // show, hide elements every "interval" milliseconds 
    window.setInterval(function() { 
     $(items[ (i==0) ? (items.length - i) - 1 : i - 1 ]).hide() 
     $(items[i++]).show(); 
     if (!items[i]) i = 0; 
    }, interval); 

}); 
0

Beau travail Chris. A travaillé un traitement absolu.