#jquery #jquery-plugins
#jquery #jquery-плагины
Вопрос:
Я создаю плагин jQuery, который создает прокручиваемый div. Вы можете прокручивать вверх и вниз, используя div с правой стороны. Проблема в том, что мой перетаскиваемый div, кажется, довольно дрожащий при его перемещении.
Полный пример того, что я пытаюсь, находится здесь: http://jsfiddle.net/j8Hqq/1 /
Я думаю, что оскорбительный код будет здесь:
.mousemove(function(e) {
if(being_dragged) {
scroller_y = e.pageY - $(this).offset().top;
if(scroller_y < 0)
scroller_y = 0;
else if(scroller_y > $this.height() - $(this).height())
scroller_y = $this.height() - $(this).height();
}
$(this).css({
top: scroller_y
});
$('#custom-scroll-children').scrollTop(scroller_y);
});
Я думал о внедрении в него jQuery-ui.draggable, но не хотел, чтобы к плагину была прикреплена большая библиотека.
Спасибо,
Комментарии:
1.вы пробовали JScrollPane? jscrollpane.kelvinluck.com jscrollpane.kelvinluck.com/basic.html
Ответ №1:
$(this).offset().top;
в mousemove получает сильно отличающиеся значения, вот почему она такая же прерывистая, как и есть. Я получил более плавные результаты, поместив topOffset = $(this).offset().top;
в функцию mousedown, а затем используя scroller_y = e.pageY - topOffset;
в mousemove.
Тем не менее, все еще есть проблемы (прокрутка останавливается, когда мышь покидает область прокрутки, быстрые движения мыши останавливают прокрутку).
Вы смотрели на http://jscrollpane.kelvinluck.com / ? Это плагин jQuery, который в значительной степени выполняет то, чего вы пытаетесь достичь здесь.
Комментарии:
1. Спасибо за вашу помощь, я смог сделать это более плавным, сделав это. Я продолжу делать то, что делаю, но спасибо, что указали на JScrollPane (и @Andy), я знаю, что мне есть на что опереться в случае неудачи!
Ответ №2:
.функция css заставляет перетаскиваемый div дрожать, вы можете попробовать функцию «анимировать».