Вот моя проблема, она длинная, но на самом деле очень простая, пожалуйста, по крайней мере, просмотрите ее, если хотите.
Я беру div с именем app и перетаскиваю его по странице. Работает отлично. За исключением случаев, когда я беру div и перетаскиваю вместо перетаскивания div только изображение перетаскивания div (в браузерах firefox и webkit, а не ie), и курсор мыши превращается в круг с линией, проходящей через него. Это сильно подрывает интерактивность веб-страницы, и я не думаю, что это проблема кодирования, а проблема браузера.
Я покажу код, используемый для перетаскивания, но сначала вы, вероятно, должны знать, что для перетаскивания я использую три набора переменных, X1 и Y1 - это pageX и pageY (clientX или clientY в зависимости от браузера) и или записывается каждый раз, когда движется мышь.
X2 и Y2 устанавливаются при нажатии мыши на элементе div и представляют собой разницу между положением мыши и текущим верхним и левым положением элемента div, они используются таким образом, чтобы при перетаскивании элемента div положение мыши было не равно верхнему левому углу.
И, наконец, dX и dY (сокращение от дельта X и дельта Y) равны X1 - X2 и Y1 - Y2, они также устанавливаются, когда мышь двигается, и равны изменению X и изменению Y.
Извините за объяснение, но я подумал, что это может помочь устранить любые недоразумения со следующим кодом, вот код перетаскивания.
app.onmousedown = function() {
X2 = app.offsetWidth - ((app.offsetWidth + app.offsetLeft) - X1);
Y2 = app.offsetHeight - ((app.offsetHeight + app.offsetTop) - Y1);
main.onmousemove = function() {
dX = X1 - X2;
dY = Y1 - Y2;
app.style.top = dY + 'px';
app.style.left = dX + 'px';
}
}
Обратите внимание, что основной div - это просто контейнер, содержащий все элементы страницы, и используется для удобства, потому что он равен размеру веб-страницы.
И это действительно моя проблема, как я уже говорил, до того, как она возникает, иногда она работает отлично, без каких-либо ошибок. И все же это происходит достаточно часто, чтобы стать проблемой. Я знаю, что это возможно, потому что я видел перетаскиваемые демо-версии, которые не страдают от этой проблемы. Поэтому, если кто-то знает или имеет какие-либо идеи, это было бы очень признательно, если бы не все равно спасибо за то, что удосужились прочитать это, я знаю, что это было давно жаль.
ps: пожалуйста, не предлагайте вместо этого фреймворки javascript, я не фанат их. Это мое предпочтение, я не ненавижу их, я просто предпочитаю JavaScript.