2011-10-16 17 views
6

Per qualche motivo, quando prima vado a una pagina recente che ho creato, il plugin jQuery Cycle non funziona. Il sito si trova here (il sito è in un'altra lingua [ebraico]).plug-in jQuery cycle (spesso) non funziona in Google Chrome

Indipendentemente dalla lingua in cui si trova, il plug-in Cycle funziona perfettamente con Firefox e IE. Mi chiedo se questo è un bug sulla mia fine o un bug alla fine del plugin.

Se si tratta di un bug sulla mia estremità, come posso risolvere il problema?

+0

Grazie @pimvdb per la bella modifica – Amit

+2

stai usando jQuery 1.6? Prova la versione 1.5 da risolvere. Sembra che ci sia un problema http://forum.jquery.com/topic/cycle-plugin-bug-with-jquery-1-6-chrome-11-0 – ulima69

+0

Sì, sto caricando '' – Amit

risposta

4

La soluzione a questo problema, sulla base del fatto che Google Chrome non riesce a rendere correttamente l'altezza delle generate dinamicamente div (come @ ulima69 osservato), è quello di dare il div wrapping (.slideshow) una larghezza designata & altezza congruente con la larghezza/altezza dell'immagine.

Questo corregge il bug per ora. Se le immagini fossero tutte di dimensioni diverse, si dovrebbe cercare una soluzione più complicata. @ ulima69 ha fornito due link a plug-in di ciclo alternativi che devono essere compatibili con con Chrome. Fai ciò che funziona per te.

Amit

0

Ecco una breve demo per voi: http://jsfiddle.net/VpnPb/4/. Ho usato jQuery 1.6.4 e tutto funziona bene con diverse dimensioni dell'immagine.

$('#s5').cycle({ 
 
    fx: 'fade', 
 
    pause: 1 
 
}); 
 

 
$('#s6').cycle({ 
 
    fx: 'scrollDown', 
 
    random: 1 
 
});
.pics { 
 
    height: 232px; 
 
    width: 232px; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
.pics img { 
 
    padding: 15px; 
 
    border: 1px solid #ccc; 
 
    background-color: #eee; 
 
    width: 200px; 
 
    height: 200px; 
 
    top: 0; 
 
    left: 0 
 
}
<link href="http://jquery.malsup.com/cycle/cycle.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
 
<script src="http://malsup.github.io/jquery.cycle.all.js"></script> 
 
<script src="http://malsup.github.io/chili-1.7.pack.js"></script> 
 

 
<div id="s5" class="pics"> 
 
    <img src="http://desmond.yfrog.com/Himg735/scaled.php?server=735&filename=u2tc.jpg&res=iphone" width="200" height="200" /> 
 
    <img src="http://desmond.yfrog.com/Himg611/scaled.php?server=611&filename=ei41.jpg&res=iphone" width="200" height="200" /> 
 
    <img src="http://desmond.yfrog.com/Himg616/scaled.php?server=616&filename=2113.jpg&res=iphone" width="200" height="200" /> 
 
</div> 
 
<br/> 
 

 
<div id="s6" class="pics"> 
 
    <img src="http://desmond.yfrog.com/Himg735/scaled.php?server=735&filename=u2tc.jpg&res=iphone" width="200" height="200" /> 
 
    <img src="http://desmond.yfrog.com/Himg611/scaled.php?server=611&filename=ei41.jpg&res=iphone" width="200" height="200" /> 
 
    <img src="http://desmond.yfrog.com/Himg616/scaled.php?server=616&filename=2113.jpg&res=iphone" width="200" height="200" /> 
 
</div>

+0

Questo è un buon esempio, ma è anche esattamente cosa stavo facendo nel mio codice, quindi non mi aiuta a risolvere il mio problema. Si prega di leggere i commenti sopra, in particolare ciò che ha detto @ ulima69. Chrome non riesce a riconoscere le dimensioni dei div dinamici generati all'avvio. Poiché assegni una larghezza/altezza, il bug non si verifica nel tuo caso (e casualmente, questo è anche il modo per risolvere il problema, assegnare un'altezza/larghezza originale). – Amit

4

Devi usare .load invece di .ready per consentire le immagini da caricare nella pagina

$(window).load(function() { 
    $('.element').cycle(); 
}); 
Problemi correlati