Я хочу переместить дочерний элемент при перетаскивании по родительскому элементу и самому элементу, а родительский элемент не должен перемещаться.
вот мой demo
Как и в демоверсии, я хочу переместить красную рамку, когда она перетащит на нее или перетащит ее родительский (фон), но я не смог вычислить правильную позицию, не могли бы вы мне помочь?
Другой вопрос, почему я не могу off
mousemove event
, когда я установил .off('mousemove', mousemove')
Большое спасибоJavascript moving child при перетаскивании на родителя
1
A
ответ
1
Я сделал некоторые изменения. Это работает;)
DEMO
$(function(){
var graph = $('.graph')[0];
var parent = $(graph).parent();
var lockX = 0;
var lockY = 0;
var mousemove = function(e){
$(graph).offset({
top: e.pageY + lockY,
left: e.pageX + lockX
});
};
parent.on('mousedown', function(e) {
lockY = $(graph).offset().top - e.pageY;
lockX = $(graph).offset().left - e.pageX;
$(this).addClass('draggable')
.on('mousemove', mousemove)
.on('mouseup', function(){
$(this).off('mousemove', mousemove)
})
event.preventDefault()
});
$('.graph').parent().on('mouseup', function(e) {
$('.draggable')
.off('mousemove', mousemove)
.removeClass('draggable');
});
});
EDIT
Единственное фактическое изменение, которое я сделал, чтобы сделать его работа:
.offset({
// instead of: e.pageY - $('.draggable').outerHeight()/2 + dtop
top: e.pageY + dtop,
// instead of: e.pageX - $('.draggable').outerWidth()/2 + dleft
left: e.pageX + dleft
})
PS: В примере в JS Fiddle I изменил dleft
и dtop
соответственно на lockX
и lockY
. Конечно, это чистая семантическая вещь.
+0
Большое спасибо! – Awakening
Смежные вопросы
- 1. Как отключить перетаскивание подслоев при перетаскивании родителя?
- 2. Вызов метода child из родителя в JavaScript
- 3. change child: before css при наведении на родителя
- 4. Получение nth-child родителя
- 5. перетаскивать дочерние элементы при перетаскивании родителя - jquery ui draggable
- 6. Обновление данных javascript при перетаскивании
- 7. Как вызывать JavaScript при перетаскивании?
- 8. Потеря сцепления при перетаскивании NSView
- 9. Jquery select child родителя привязки
- 10. Javascript moving circle
- 11. Изменение размера родителя сдерживания элемента JQuery Draggable при перетаскивании
- 12. Choppy moving object Javascript
- 13. Наследование Javascript - вызов метода child всегда вызывает метод родителя
- 14. Возвращает класс child из статического метода родителя
- 15. Весна - класс Child свойство не установлено при введении через родителя
- 16. Прикрепленный javascript при физическом перетаскивании для изменения размера окна браузера
- 17. JQuery. Добавление класса - или Child: наведите указатель мыши на родителя?
- 18. Автоматическая прокрутка при перетаскивании
- 19. JavaScript - Google Charts - Перерисовать при перетаскивании
- 20. Вызов метода класса Child при обработке списка объектов класса родителя
- 21. Директива Child не получает событие $ destroy при уничтожении родителя
- 22. Bash child process убивает родителя при выполнении eval exec
- 23. Найти класс TypeOf Child при отливке в качестве родителя
- 24. Hover highlight child не должен выделять родителя
- 25. Javascript logo moving mouseover функциональность
- 26. Выбор nth-child От родителя id
- 27. Jquery/Javascript перетащить одного родителя на другого
- 28. Flexbox child не уважает границы своего родителя
- 29. Javascript Double moving game problome
- 30. Обновление позиции при перетаскивании
Почему бы не использовать jquery draggable? https://jqueryui.com/draggable/#constrain-movement – lukbl
на самом деле мне нужна эта функция, поэтому я не хочу импортировать всю библиотеку jquery в свой проект. – Awakening
Вам не нужна вся библиотека, вы можете скачать только конкретные функции: https://jqueryui.com/download/#! – lukbl