Я пытаюсь создать горизонтальный скроллер для этого. http://www.k2.pl/горизонтальный ускоренный карусельный скроллер
Я сделал прототип здесь. http://jsfiddle.net/Uu3aP/1
Я заглянул в плагины карусели, но никто не функционирует так, как хотелось бы.
Мне просто интересно, как я выполняю расчет скорости на основе положения x слева и справа и, возможно, использую метод ослабления сторон.
Здесь я нахожусь, любая помощь будет оценена по достоинству.
HTML
<div id="scroll">
<div id="scrollContainer">
<ul>
<li><img src="http://placehold.it/350x350" alt="" /></li>
<li><img src="http://placehold.it/350x350" alt="" /></li>
<li><img src="http://placehold.it/350x350" alt="" /></li>
<li><img src="http://placehold.it/350x350" alt="" /></li>
<li><img src="http://placehold.it/350x350" alt="" /></li>
</ul>
</div>
CSS
body {
margin: 0;
}
#scroll {
width: 100%;
overflow: hidden;
}
#scrollContainer * {
float: left;
list-style: none;
margin: 0;
padding: 0;
}
JAVASCRIPT
$(document).ready(function() {
var $totalwidth = 0;
var $paneTarget = $('#scroll');
var $paneContainer = $('#scrollContainer');
var $this = $(this);
var $w = $this.width();
$paneTarget.find('li').each(function() {
$totalwidth += $this.width();
$paneContainer.width($totalwidth);
});
$paneTarget.on('mousemove', function(e) {
if ((e.pageX) < $w/2) {
$paneTarget.stop().scrollTo({top:'0', left:'-=100'}, 200, {easing: 'linear'});
} else if ((e.pageX) > ($w/2)) {
$paneTarget.stop().scrollTo({top:'0', left:'+=100'}, 200, {easing: 'linear'});
}
else {
$paneTarget.stop();
}
});
});
Это действительно умное спасибо! Я все еще пытаюсь определить, как все это работает. У меня вопрос. Когда я превращаю это в функцию и вызывается изменение размера, оно работает, но становится глючным, http://jsfiddle.net/qfNyM/ – hyperdrive
В вашем обработчике изменения размера вам нужно только повторно инициализировать windowWidth и maxScroll. – Hendrik
Спасибо. Я получил его для работы, завернув его в функцию и удалив объявление var. Является ли это больше работы, тогда это нужно делать, и, честно говоря, я не знаю, как повторно инициализировать переменные из-за пределов функции, я рассмотрю это. Вы очень помогли. – hyperdrive