Добавление текущего состояния в элементы jQuery Tools Scrollable
У меня есть jQuery Tools Scrollable, над которым я работал некоторое время, и я получил его там, где он изменяет размер в зависимости от размера браузера, и следующая кнопка отключается в самой дальней правой точке прокрутки.
Каждый элемент в прокручиваемом вызывает изменение фона. Я сейчас пытаюсь переключить "текущий" класс. Когда вы наводите на них курсор, вы получаете белую рамку. Я хочу, чтобы это тоже было текущим состоянием. Как бы я пошёл об этом?
<div id="bkgrSelector">
<div class="scrollNav">
<a class="prev"></a>
</div>
<div class="scrollable">
<div class="items" id="thumbs">
<?php
for($i=0; $i < count($imageArray); $i++){
echo('<img onclick="changeBig(\''.$imageArray[$i].'\')" src="/lib/img/bkgr/'.$imageArray[$i].'" alt="thumbnail image" width="77" height="44" />');
}
?>
</div>
</div>
<div class="scrollNav">
<a class="next"></a>
</div>
JavaScript:
//Initiates Background selector scrollable
$("#bkgrSelector .scrollable").scrollable();
//Changes the background selector scrollable size, and handles the disabling of the next button at end of scrollable
$(window).bind('resize', function(){
var width = $(document).width();
var thumbWidth = Math.round(width - 350);
$("#bkgrSelector").css("width", thumbWidth + "px" );
$("#bkgrSelector .scrollable").css("width", (thumbWidth - 48) + "px" );
var scrollable = jQuery("#bkgrSelector .scrollable").data("scrollable");
var size = Math.floor(thumbWidth / 94);
console.log(size);
scrollable.onSeek(function(event, index) {
if (this.getIndex() >= this.getSize() - size) {
jQuery(".scrollNav .next").addClass("disabled");
}
});
scrollable.onBeforeSeek(function(event, index) {
if (this.getIndex() >= this.getSize() - size) {
if (index > this.getIndex()) {
return false;
}
}
});
}).resize()
CSS:
#bkgrSelector .items img:hover, #bkgrSelector .items .current
{padding:0; border:2px solid #fff; cursor:pointer; }
1 ответ
Решение
Если я правильно понимаю ваше желаемое поведение, когда пользователь щелкает изображение, которое вы хотели бы прикрепить к стилю.current, а затем применить логику смены фона? Если так, что-то вроде этого будет работать:
$('#thumbs img').click(function() {
// remove existing current selection
$('#thumbs img.current').removeClass('current');
// Apply style to selected item
$(this).addClass('current');
});