Слайдер jquery не останавливается мгновенно с помощью mousedown и mouseup
Ссылка ниже предназначена для копирования слайдера jquery, я хочу сделать скольжение плавным, но когда я сокращаю время в setinterval (скажем, 200), слайдер не реагирует на событие mouseup мгновенно, и слайды останавливаются через секунду или две после mouseup срабатывает. Я также попытался использовать остановку на анимации jquery, но это не помогло. Вот ссылка. http://jsfiddle.net/WwT54/ А пока через каждые полсекунды слайд смещается на 10 пикселей, я хочу, чтобы он выглядел плавно.
$("#popUpInnerArrowLeft").mousedown(function (event) {
movetoleft();
});
var into, into2;
function movetoleft() {
function moveit() {
$(".thumbsInnerContainer").animate({
left: '-=10px'
});
}
into = setInterval(function () {
moveit();
}, 500);
}
$(document).mouseup(function (event) {
clearInterval(into);
});
//for the right arrow
$("#popUpInnerArrowRight").mousedown(function (event) {
movetoright();
});
function movetoright() {
function moveit2() {
$(".thumbsInnerContainer").animate({
left: '+=10px'
});
}
into2 = setInterval(function () {
moveit2();
}, 500);
}
$(document).mouseup(function (event) {
clearInterval(into2);
});
1 ответ
Проверьте это (это то, что вы хотите):
var into, into2, unit = '';
$("#popUpInnerArrowLeft").click(function (e) {
e.preventDefault();
unit = false;
movetoleft();
});
//for the right arrow
$("#popUpInnerArrowRight").click(function (e) {
e.preventDefault();
unit = true;
movetoright();
});
function moveit() {
$(".thumbsInnerContainer").stop(true,true).animate({
left: ((unit == true)? '+=':'-=') + '10px'
},{easing:'linear'});
}
function movetoright() {
into = setInterval(function () {
moveit();
}, 300);
}
function movetoleft() {
into = setInterval(function () {
moveit();
}, 300);
}
$(document).mouseup(function (event) {
clearInterval(into);
});
рабочая скрипка здесь: http://jsfiddle.net/WwT54/2/