2012-06-12 1 views
2

HTML:rotatif Effet CoverFlow

- for (x in dict) 
    div.test 
    div.ContentFlow 
     div.loadIndicator 
     div.indicator 
     div.flow 
     - for (var i in dict[x]) 
      img(class='item', src='/images/' + dict[x][i] + '.jpg') 

mon CSS:

.test { 
    display:block; 
} 
.ContentFlow { 
    margin-top: 10%; 
} 

côté client JS:

var count = 0 
var items; 
var amount = 0; 
$(window).load(function(){ 
    items = $("#test .ContentFlow"); 
    amount = items.length; 

    items.hide(); 
    items.eq(count).show(); 
} 
$(window).load(setInterval(function(){ 

    // tried this as well 
    //var items = $("#test .ContentFlow"); 
    //var amount = items.length; 

    items.eq(count).hide(); 
    count >= amount-1 ? count = 0 : count++; 
    items.eq(count).show(); 

}, 1000)); 

ConentFlow css/js: http://www.jacksasylum.eu/ContentFlow/docu.php

Je suis essayer de ro tate le div .ContentFlow toutes les 5 secondes. Cependant, cela ne fonctionne pas. Après avoir défini l'affichage: aucun pour la classe ContentFlow, rien ne s'affiche au moment du chargement et par la suite. Si je ne définis pas display: none pour les divs ContentFlow dans mon css, tous les divs apparaissent au moment du chargement

Quelles propriétés dois-je utiliser pour que cela fonctionne. S'il vous plaît laissez-moi savoir si la question n'est pas claire.

+0

Cela ressemble à une question javascript, vu que vous essayez de le faire changer au fil du temps. –

+0

Non. Ce n'est pas ce que je veux. Imaginez que j'ai 5 ContentFlows avec 10 images. Et je veux faire pivoter ces 5 ContentFlows toutes les 3 secondes. Chaque ContentFlow a son propre div. Pour être sûr, je ne veux pas de ContentFlow contenant d'autres ContentFlow (s). –

+0

Je viens de vérifier au [** ContentFlow site ** ** (http://www.jacksasylum.eu/ContentFlow/index.php) et la dernière version prend en charge plusieurs ContentFlow sur la même page Web. Va supprimer certains messages précédents et nettoyer un peu. – arttronics

Répondre

2

Déplacer

items = $(".ContentFlow"); 
var amount = items.length; 

à l'intérieur des fonctions afin qu'il soit exécuté après le chargement de la fenêtre.


refactorisé:

var count = 0; 

$(window).load(function(){ 

    // Hide at first 
    $("#test .ContentFlow").hide(); 

    // Start repeating toggle 
    setInterval(function(){ 

     var items = $("#test .ContentFlow"); 
     var amount = items.length; 

     items.eq(count).hide(); 
     (count >= amount-1) ? count = 0 : count++; 
     items.eq(count).show(); 

    }, 1000); 
}; 

Au lieu de faire la cachette initiale à l'aide $("#test .ContentFlow").hide();, vous pouvez simplement définir un style .ContentFlow{display:none;} pour éviter le scintillement lorsque la page est toujours en chargement.

+0

+1 pour la mise en cache correcte des objets de page Web. – arttronics

+0

en fait le but de le déplacer à l'intérieur était que le problème est probablement que le code est exécuté avant que le navigateur ait chargé les éléments '.ContentFlow'. – Supr

+0

Pour être sûr, c'est ce que j'ai dit en moins de mots. – arttronics

2

Je vous recommande d'utiliser la dernière version de ContentFlow v1.0.2 qui permet à plusieurs ContentFlows d'être sur la même page Web, chacun avec un gestionnaire JavaScript unique.

Ensuite, vous pouvez utiliser le ContentFlow Slideshow Plugin que vous gérer ensuite toutes les exigences de synchronisation dont vous avez besoin. La bonne chose à propos du plugin Slideshow est que chaque ContentFlow peut être réglé à une vitesse de synchronisation différente.

+0

Je n'ai pas posté de snippets de code puisque le balisage d'utilisation est sur ce site (accéder aux liens dans ma réponse). Après avoir donné un nom à chaque lecteur ContentFlow, le plugin Slideshow chargé séparément n'a que quelques lignes d'options à définir pour chacun ... vraiment simple pour un script féroce. – arttronics

+0

@gaurav jain, placez vos 'items =' et 'var amount =' dans une fonction jQuery Document Ready. De plus, vous devez disposer d'un lien jsFiddle/test pour pouvoir résoudre ce qui se passe réellement. Note complémentaire: Ne fournissez pas de rapports d'état globaux sous la forme de commentaires dans les publications ... ajoutez-les à vos propres commentaires ou répondez à la section en tant que mise à jour. – arttronics