Я построил эту галерею, которая по большей части работает. Проблема в том, что когда я нажимаю стрелку вправо, элемент моей галереи сместится с экрана на пустое место, затем появится следующее изображение (вместо следующего изображения, скользящего с ним). Когда вы нажмете на стрелку влево, напротив, изображение галереи мгновенно исчезнет и переместится в новую. Любая идея о том, что происходит? Вы можете видеть, о чем я говорю, перейдя сюда: http://jsfiddle.net/grem28/dhUEc/
здесь js:
$(function(){
var curImg = 0;
$('#leftArrow a').click(function(e){
e.preventDefault();
if(curImg!=0){
curImg--;
$('.image_reel').css('left','+=323px');
}else{
curImg = ($('.image_reel img').size()-1);
$('.image_reel').css('left',-($('.image_reel img').width()*($('.image_reel img').size()-1)));
}
});
$('#rightArrow a').click(function(e){
e.preventDefault()
if(curImg==($('.image_reel img').size()-1)){
curImg = 0;
$('.image_reel').css('left','0px');
} else {
curImg++;
$('.image_reel').css('left','-=323px');
}
});
});
Если вы удалите overflow: hidden
вы можете увидеть, что на самом деле происходит:
Изображения на самом деле внизу и только появляются, когда есть место для них. Я бы предложил удалить float
из изображений и добавить white-space: nowrap
к white-space: nowrap
изображения. Вы также можете добавить font-size: 0
чтобы удалить все пространство между изображениями.
.image_reel {
white-space: nowrap;
font-size: 0;
/* ... */
}
left
значение вместо использования+=
. нажатие кнопки в то время как средний переход может скинуть вещи при использовании+=
.