jQueryUI - при перетаскивании автопрокрутка проходит двойное расстояние - PullRequest
0 голосов
/ 05 января 2011

Я переместил проблему на самую короткую страницу, на которой показана проблема (извинения за встроенный стиль).

Если вы прокрутите вниз и перетащите заголовок «перетащите меня», посмотрите, как перетаскиваемый элемент отклоняется от курсора. Кажется, он перемещается вдвое больше (относительно документа), чем нужно.

Я воспроизвел проблему в IE8, FF3.5 и Chrome. На WinXP и Ubuntu.

Я делаю что-то глупое в своем коде или я столкнулся с ошибкой?

Спасибо

Крис.

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $(".draggable").draggable();
        });    
    </script>
</head>
<body>
<div style="width: 100px; height: 800px; background: green;">
</div>
<h1 class="draggable">drag me</h1>
<div style="width: 100px; height: 800px; background: green;">
</div>
</body>
</html>

1 Ответ

1 голос
/ 05 января 2011

Для меня вы нашли ошибку :)
Он работает нормально, пока курсор мыши не останется внутри видимой области ... затем H1 включает гипердвигатель: D
Чтобы уменьшить (но не полностью избежать) эффекты ошибки, вы можете ограничить перетаскиваемую область тегом e (например, body) И отключить прокрутку:


            $(".draggable").draggable();
            $(".draggable" ).draggable( "option", "containment",  'body' );
            $(".draggable" ).draggable(  "option", "scroll" , false  );

или произвольная область (другой вариант в документах):


            var area=Array(0,740,300,880);
            $(".draggable").draggable();
            $(".draggable" ).draggable( "option", "containment",  area );
            $(".draggable" ).draggable(  "option", "scroll" , false  );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...