Показать сообщение отдельно
  #4 (permalink)  
Старый 11.02.2016, 16:45
Новичок на форуме
Отправить личное сообщение для polecat Посмотреть профиль Найти все сообщения от polecat
 
Регистрация: 19.02.2015
Сообщений: 8

Может как-то так?
var galleryArray = [
"image/test/test_01.png",
"image/test/test_02.png",
"image/test/test_03.png",
"image/test/test_04.png",
"image/test/test_05.png",
"image/test/test_06.png",
"image/test/test_07.png",
"image/test/test_08.png",
"image/test/test_09.png",
"image/test/test_10.png",
];


$(function(){
    var position = counter(); // используем замыкание
	setImage($('.gallery img'), galleryArray);
	$('.gl_next').bind('click', function(){nextImage($('.gallery img'), galleryArray, position(1))});
	$('.gl_back').bind('click', function(){nextImage($('.gallery img'), galleryArray, position(-1))});
});


function counter () { // функция, возвращающая текущую позицию первого показываемого элемента
    var len = galleryArray.length; 
    var count = 0;  // текущая позиция первого показываемого элемента
    
    return function (direction) { // direction - направление перелистывания (1 вперёд : -1 назад)
        if (count + direction < len) {
            (count + direction > 0) ? count = count + direction: count = len - 1; 

// если не понятна сокращённая запись, вот полная:                
//            if (count + direction > 0) { 
//                count = count + direction; 
//            } else {
//                count = len - 1; //последний элемент массива galleryArray
//            }
        } else {
            count = 0;
        }
        return count;
    }
}


function setImage(elemArray, array) {	
	var i, len;
    
	for (i = 0, len = elemArray.length; i < len; i++){
		elemArray[i].src = array[i]
	};
};


function nextImage(elemArray, array, counter) {
    var lastElement = galleryArray.length - 1;
	var i = counter;
		
	for (var j = 0; j < elemArray.length; j++){ 
		elemArray[j].src = array[i]
		(i < lastElement) ? i++ : i = 0;
	};
};
Ответить с цитированием