Theres проблема с jQuery UI sortable/draggable, где, если перемещаемый элемент центрируется с использованием margin:0 auto
, перетаскивание начинается с левой стороны контейнера, а не центра, где находится элемент.Draggable And Margin: 0 auto;
Heres demo, чтобы показать что я: http://codepen.io/anon/pen/YqWRvV. Просто перетащите красный квадрат.
Если вы удалите margin:0 auto
из элемента '.drag', вы увидите, что перетаскивание начинается нормально.
Как я могу исправить эту проблему и удалить элемент с того места, где он находится на самом деле, при центрировании с помощью margin:0 auto
?
Это похоже на Google Chrome.
$("#c").sortable();
`.drag {
margin: 0 auto;
width: 200px;
height: 200px;
background-color: red;
}`
центрирования элемент с CSS «известково» исправляет проблему, но мои элементы ширина может изменяться динамически. Также «calc» не поддерживается так же, как «margin».
Обертка перетаскиваемого контейнера устраняет проблему, но изменения HTML не являются решением, которое я ищу.
UPDATE: Так что это не ошибка jQuery. Это ошибка с Google Chrome. По-видимому, неправильная позиция извлекается хром, и поэтому jQuery запускает перетаскивание, откуда хром сообщает, где находится элемент. Я выводил левую позицию элемента в консоли, и вы можете видеть, что это 13 пикселей, когда это явно не так. http://codepen.io/anon/pen/YqWRvV. Мне интересно, была ли эта ошибка обнаружена.
РЕШЕНИЕ http://codepen.io/anon/pen/MyjeJP Благодаря Julien Грегуар Примечание: Это решение может понадобиться способ обновить позицию помощника.
Я использую FirefoxDeveloperEdition и я не вижу ошибку – silviagreen
я вижу, он работает на светлячок. Это проблема Chrome, попробуйте в Chrome, и вы увидите. – guub