i trying create simple jquery based slider fadein on pageload. have problems cycling of script after first time.
here javascript code:
function slideshow(isfirst) { if(isfirst) { $('#slider_img_1').delay(1500); } $('#slider_img_1').fadein(2000).delay(1000).fadeout(2000); // 6500 $('#slider_img_2').delay(5500).fadein(2000).delay(1000).fadeout(2000); // 10500 $('#slider_img_3').delay(9500).fadein(2000).delay(1000).fadeout(2000); // 14500 } $(document).ready(function() { slideshow(true); setinterval("slideshow(false)",14500); }); as can see add delay img_1 first cycle. in second cycle loop through slideshow again same duration total cycle should take.
but goes wrong when interval starts, first gap widespread delays.
based on arun's fiddle: https://jsfiddle.net/h2jwqhom/2/
instead of trying synchronize separate intervals, it's easier work slide slide. can accomplished getting next slide on each run:
var sliders = $('.slider_img') //obtain slide collection , cur = 0; //indexer slides function slideshow() { var $slider = $(sliders[cur++]); //get slide show if(cur>=sliders.length) cur=0; //check if next slide within bounds $slider.fadein(2000).delay(1000).fadeout(2000); //animate settimeout(slideshow,3500); //start next slide before fadeout finishes } $(document).ready(function () { settimeout(slideshow, 1500); //start slideshow after 1500 msecs }); as side note, if ok let fadeout finish completely, $slider.fadein(2000).delay(1000).fadeout(2000, slideshow); instead of using settimeout, reckoned goal transition without fading out completely.
Comments
Post a Comment