Ostatnio chciałem pogłębić moją znikomą wiedzę


plik z kodem: image_rotator
html:
css:
.wrapper { margin: 0 auto; position: relative; width: 600px; height: 350px; overflow: hidden; border: 4px solid grey; } .wrapper .image-wrapper img{ position: absolute; display: none; height: 378px; margin: 0 auto; background: white; } .wrapper .image-wrapper img.active { z-index:1; display: inline-block; } .wrapper .buttons { font-family: arial; font-weight: bold; color: white; margin: 0 auto; width: 100%; position: absolute; z-index: 99; top: 150px; } .wrapper .buttons a { text-decoration: none; color: #fff; } .wrapper .buttons .left{ position: absolute; left: 10px; display: block; background: rgba( 0,0,0,0.5); padding: 5px 10px; } .wrapper .buttons .right{ position: absolute; right: 10px; display: block; background: rgba( 0,0,0,0.5); padding: 5px 10px; } .wrapper .pagination { background: rgba( 0,0,0,0.5); position: absolute; padding: 5px; bottom: 5px; left: 10px; z-index: 3; } .wrapper .pagination .page_el { float: left; height: 10px; width: 10px; margin: 1px; border: 1px solid #fff; } .wrapper .pagination .checked { background: #ddd; }
js:
var nextImg = function() { var imgs = $('.image-wrapper img'); var active_obj = $('.active'); var next_img = active_obj.next(); var first_img = imgs.first(); if( !imgs.last().hasClass('active')){ next_img.css("z-index", "2") next_img.fadeIn( 800, function() { active_obj.css("z-index","1"); active_obj.css("display","none"); active_obj.removeClass('active'); next_img.addClass('active'); }); }else{ first_img.css("z-index", "2"); active_obj.css("z-index", "1"); first_img.fadeIn( 800, function() { active_obj.css("z-index","1"); active_obj.css("display","none"); active_obj.removeClass('active'); first_img.addClass('active'); }); }; return 1; } var prevImg = function() { var imgs = $('.image-wrapper img'); var active_obj = $('.active'); var prev_img = active_obj.prev(); var last_img = imgs.last(); if( !imgs.first().hasClass('active')){ prev_img.css("z-index", "2") active_obj.css("z-index", "1"); prev_img.fadeIn( 800, function() { active_obj.css("z-index","1"); active_obj.css("display","none"); active_obj.removeClass('active'); prev_img.addClass('active'); }); }else{ last_img.css("z-index", "2"); last_img.fadeIn( 800, function() { active_obj.css("z-index","1"); active_obj.css("display","none"); active_obj.removeClass('active'); last_img.addClass('active'); }); }; } var pagination_build = function () { count_of_img = $(".image-wrapper img").length; console.log(count_of_img); for(i=0; i<count_of_img; i++){ $(".pagination").append('<div class="page_el pid_'+i+'"></div>'); } } var pagination_check = function(im_a, pa_a, im, pa) { for(i=0; i < im.length ; i++){ if( im_a[i].hasClass('active') == true ){ pa_a[i].addClass('checked'); }else{ pa_a[i].removeClass('checked'); }; } } var display_img = function(im_a,pa_a, id) { for(i=0; i<im_a.length; i++){ if( pa_a[i].hasClass(id)){ im_a[i].fadeIn(800); im_a[i].addClass("active"); pa_a[i].addClass("checked"); }else{ im_a[i].css("z-index","0"); im_a[i].css("display","none"); im_a[i].removeClass("active"); pa_a[i].removeClass("checked"); } } } $(document).ready( function(){ pagination_build(); var img_arr = []; var pag_arr = []; var imgs = $(".image-wrapper img"); var pags = $(".pagination div"); imgs.each( function(){ img_arr.push($(this)); }); pags.each( function(){ pag_arr.push($(this)); }); for(i=0; i < imgs.length ; i++){ img_arr[i].addClass("id_" + i); } $("a.right").click( function(){ nextImg(); setTimeout(function(){ pagination_check(img_arr, pag_arr, imgs, pags); },900); }); $("a.left").click( function(){ prevImg(); setTimeout(function(){ pagination_check(img_arr, pag_arr, imgs, pags); },900); }); pagination_check(img_arr, pag_arr, imgs, pags); var clicked_obj_name; $(".page_el").click( function(event){ clicked_obj_name = event.target.className; console.log(clicked_obj_name); display_img(img_arr,pag_arr,clicked_obj_name); }); ticker = setInterval( function(){ pagination_check(img_arr, pag_arr, imgs, pags); nextImg(); pagination_check(img_arr, pag_arr, imgs, pags); }, 5000 ); });