У меня есть сайт с горизонтальной прокруткой, в котором используется плагин jQuery для мыши mousewheel. Прокрутка работает, но я хочу привязать каждую «статью» к левой стороне документа, чтобы она не оставалась на полпути после того, как прокрутка остановлена.jQuery snap после горизонтального прокрутки
Разметка я до сих пор:
CSS
#viewport {
width:100%;
height:100%;
overflow: hidden;
}
#stage {
height:100%;
width:400%;
position: absolute;
display:block;
overflow: hidden;
}
#stage article {
width:25%;
height:100%;
position: relative;
display:block;
float:left;
}
HTML
<div id="viewport">
<section id="stage" class="clearfix">
<article>
This is the block that should snap to the left once scrolling is stopped.
</article>
<article>
This is the block that should snap to the left once scrolling is stopped.
</article>
<article>
This is the block that should snap to the left once scrolling is stopped.
</article>
<article>
This is the block that should snap to the left once scrolling is stopped.
</article>
</section>
</div>
Jquery
$(function() {
$("html, body").mousewheel(function(event, delta) {
this.scrollLeft -= (delta * 30);
event.preventDefault();
});
});
Я попытался использовать этот сценарий без каких-либо хороших результатов. Кажется, что проценты не позволяют узнать предыдущее/следующее местоположение.
https://stackoverflow.com/a/8170667
Спасибо заранее.
Давид, по местоположению, я имею в виду предыдущую или следующую статью. Скрипт, который я тестировал, будет определять, как далеко от первой статьи текущий ток, а затем рассчитать расстояние до scrollLeft. Это не сработало. Я попробую ваше предложение. Благодаря! – JessyR22
Тогда, если ваши статьи имеют одинаковую ширину, вы можете просто узнать, есть ли у вас кратность их ширины и двигаться к ближайшему краю. Итак, когда ((scrollLeft% articleWidth) == 0) вы выстроились в одной статье (предполагая, что первая статья выстроена в ноль.) – David
Дэвид, я тестирую ваш код, но возвращает scrollLeft() не является функцией , Я исправил орфографию, но все равно не играю в кости. Все, что мне нужно, это то, что если статья x видна, scrollLeft влево, пока она не останется 0. Не думал, что это будет сложно. – JessyR22