не корректно работает слайд-шоу
Здравствуйте, нужно сделать слайдшоу, где картинки выезжают по клику слева, останавливаются в центре, по клику справа уезжают в право.
Вот код, но работает не верно, помогите пожалуйсто найти ошибку.
var sShowBlock = document.getElementById("ssh"), // блок содержащий картинки
// координаты картинок из аттрибута "img-coordinates"
x = sShowBlock.getAttribute("img-coordinates").split(" ")[0],
y = sShowBlock.getAttribute("img-coordinates").split(" ")[1],
// количество картинок из аттрибута "count"
amount = parseInt(sShowBlock.getAttribute("count")) || 1,
// фрагмент имени картинки без номера из аттрибута "begin-name"
imgName = sShowBlock.getAttribute("begin-name") || "",
countImg = 1; // счетчик (текущий номер картинки)
document.getElementById("next").addEventListener(" click", slt, false);
document.getElementById("prev").addEventListener(" click", slt, false);
addImg();
function addImg(n, btn) { // создает (добавляет) картинку в слайд-шоу
btn = btn || "front";
n = n || 1;
var img = document.createElement("img");
img.style.cssText = " display:block; position:absolute; top:" + y + "px; left:" + x + "px";
img.src = "img/" + imgName + n + ".jpg";
if (btn === "front") // добавить на передний план
sShowBlock.appendChild(img)
else if (btn === "back" && sShowBlock.firstElementChild) // добавить на задний план
sShowBlock.insertBefore(img, sShowBlock.firstElementChild);
return img;
}
function slt(ev) { // смена слайдов
var targetClick = ev.currentTarget;
// защита от "девиантных" кликов на время смены слайда
targetClick.removeEventListener("click", slt, false);
switch (targetClick.id) {
case "next":
if (countImg === amount) // цикличность смены слайдов
countImg = 0;
addImg(++countImg, "back");
break;
case "prev":
if (countImg === 1) // цикличность смены слайдов
countImg = amount + 1;
addImg(--countImg, "back");
break;
}
// картинка переднего плана
TweenLite.to(sShowBlock.lastElementChild, 0.5, {
css : {
opacity : 0
},
onComplete : function () {
// удаление (уже невидимой) картинки переднего плана
sShowBlock.removeChild(sShowBlock.lastElementChild );
// прослушивание события вернуть клика в "исходное состояние"
targetClick.addEventListener("click", slt, false);
}
});
}
|