2017-07-23 3 views
1

Ich implementiert Bild-Slider mit jquery. Aber es ist nicht zirkulär. Es bedeutet, dass es derzeit 1->2->3..->8 dann zurück zu zero Marge. es sieht nicht gut aus. wie ich nach dem letzten Element 1->2->3..->8->1->2-3 anfügen werde, damit es gut aussieht.wie man das Bild in jQuery zirkulär zeigt?

hier ist mein Code

$(function(){ 
    var counter =0 
    var len =$('.imageSlilder ul li').length; 
    setInterval(function(){ 
     $('.imageSlilder ul').css('margin-left',-325*counter+'px') 

    counter++; 
     if(counter>=len){ 
        counter =0 
       } 
    },2000) 
}) 

https://jsbin.com/zizegixoha/edit?html,css,js,output

+0

Hier ist das gute Beispiel ist mit https://stackoverflow.com/a/24036203/2630817 –

+0

@Justcode Dank für die gemeinsame Nutzung beginnen kann ich diese Logik in meinem Beispiel hinzufügen wird – naveen

+0

kopiere das erste Bild auch auf die letzte Position, dann wenn (counter> = len) reset margin-left auf 0 –

Antwort

1

das erste Bild hinzufügen an der letzten Position auch dann einfach die Position ohne Übergang auf 0 zurückgesetzt:

if(counter>=len+1){ 
     $('.imageSlilder ul').css({ 
     'margin-left':'0px', 
     transition:'margin-left 0s' 
    }) 
    counter=1 
    } 

den Übergang zu reinit , kann es zurück setzen:

$('.imageSlilder ul').css({ 
    'margin-left':-325*counter+'px', 
    transition:'margin-left 1s' 
    }) 

aktuellen Ansatz, braucht einige Optimierungen glatt laufen:

https://jsbin.com/qaruwadiwi/1/edit?js

+0

irgendeinen Vorschlag für eine Optimierung? – naveen

+0

@naveen ich denke, dass einige Bilder nicht die genaue Größe haben, deshalb theres ein paar Pixel falsch Offset .. –

+0

es ok ... danke für Hilfe – naveen

0

Ich denke, dass ein besserer Ansatz als die Margen unter Verwendung ist eine Kopie des ersten Elements an die letzte Position zu machen und es dann von seinem früheren Platz entfernen , so haben Sie Ihren unendlichen Schieberegler.

Für eine sanftere Animation können Sie die Breite des Bildes vor dem Entfernen reduzieren.

$(function(){ 
    setInterval(function(){ 
     var first = $('.imageSlilder ul').children().first(); // item to move 
     $('.imageSlilder ul').append(first.clone()); // CLONE it at the end 
     first.animate({width: 0}, 500, function() { // reduce width to 0 
      first.remove(); // on completion of the animation, remove item 
     }); 
    },2000) 
}); 

Hier haben Sie es arbeiten: https://jsbin.com/malehufifu/1/edit?html,css,js,output

+0

es sieht auch nicht gut aus, bitte sehen es ist nicht benutzer frndly – naveen

+0

bitte entfernen sie anser – naveen

+0

Es macht genau das, was deins tat , aber mit unendlich scroll ... bitte, überprüfen Sie den Link oben. –

Verwandte Themen