У меня есть div с горизонтальной прокруткой, содержащий изображения.
Используя некоторый jQuery, я сделал так, что при нажатии на правую половину div прокручивается к следующему изображению, а левая половина прокручивается к предыдущему изображению. В настоящее время после функции scrollTo следующее/предыдущее изображение находится слева от контейнера.
Как мне изменить его, чтобы он находился в центре контейнера, а также изменить функцию currentElement, чтобы проверить, когда изображение центрировано.
$(document).ready(function(){
var container = $("#sg-scroll"),
child = $(".sg-pic_wrap"),
current;
// CURRENT ELEMENT CHECK
function currentElem () {
child.each(function(){
var x = $(this).offset().left,
w = $(this).width();
if (x <= 0 && x < w ) {
current = $(this);
}
})
}
// MOVE TO ELEM
function scrollTo (elem) {
container.scrollLeft(elem);
}
// CLICK
container.on("click", function(e){
var _w = $(window).width();
if ((e.pageX) <= (_w/2)) { // LEFT
currentElem();
if (current.prev().length > 0) { // otherwise we get undefined error
scrollTo( parseInt((container.scrollLeft()) + (current.prev().offset().left) + 5 ) );
}
}
else { // RIGHT
currentElem();
scrollTo( parseInt((container.scrollLeft()) + (current.next().offset().left) + 5 ) );
}
});
// CURSOR ...
container.on("mousemove", function(e){
var _w = $(window).width();
if ((e.pageX) <= (_w/2)) { // LEFT
}
else { // RIGHT
}
});
});//document.ready
Вот скрипт для его использования в галерее.