Я пытался перемещать горизонтальную прокрутку влево и вправо при нажатии следующей и предыдущей кнопки. Проблема, с которой я сталкиваюсь, заключается в том, что прокрутка движется влево и вправо быстро при нажатии следующей или предыдущей кнопок.Горизонтальная прокрутка влево и вправо при нажатии предыдущей кнопки
Чтобы воспроизвести мой вопрос: https://jsfiddle.net/arunslb123/gzaLydkd/
- Просто нажмите вопросительный Num 36
- нажмите "предыдущая" кнопка в 10-15 раз.
- Вы можете видеть, что горизонтальные прокрутки перемещаются здесь и там.
Как исправить эту проблему?
function select($elem) {
$(".numberItem").removeClass("selected");
$elem.addClass("visited").addClass("selected");
focus($elem[0]);
}
function focus(elem) {
var stripPos = $strip.position(),
numPos = $(elem).offset(),
elemWidth = $(elem).width() + margin,
numRight = numPos.left + elemWidth;
if (numRight > wrapWidth) {
$strip.css({"left": stripPos.left - elemWidth});
}
if (numPos.left < (margin + $leftArrow.width())) {
$strip.css({"left": stripPos.left + elemWidth});
}
}
$(".controls").on("click", ".button", function() {
var $sel = $(".selected"), numPos, $sel, elemWidth;
$elem = $sel.length > 0 ? $sel.first() : $(".numberItem").first();
if (this.id == "lft") {
$sel = $elem.prev().length > 0 ? $elem.prev() : $elem;
select($sel);
} else {
$sel = $elem.next().length > 0 ? $elem.next() : $elem;
select($sel);
}
numPos = $sel.offset(); elemWidth = $sel.width() + margin;
numRight = numPos.left + elemWidth;
if (numPos.left > wrapWidth) {
$strip.css({"left": -($sel.text()) * $sel.width() });
}
if (numRight < 0) {
$strip.css({"left": +($sel.text()) * $sel.width() });
}
});
jsfiddle ссылка выглядит сломанной – dreamweiver
хмм, то странное поведение фиксируется, но полоса прокрутки не показывает активный номер, выделенный при непрерывном нажатии предыдущей кнопки. – dreamweiver
@Pete Просто нажмите Q.no 38, теперь прокрутите и перейдите к q.no 1. а затем нажмите следующую кнопку. Он должен перейти к q.no 39. Он делает так, как ожидалось. Но теперь проблема в том, что полоса прокрутки не работает. –