开发者

(my) Drag and Drop (javascript) doesn't work properly with text

my javascript drag and drop engine (still working on it) doesn't work on the second drag if there is text involved. It still behaves normally except if you click the <p id="square" onmousedown="drag(event)">meep</p>, the text drops down and follows you from not where you clicked- but from just below (a few cm) where you clicked. On the other hand, if I use a <div> with no text, it works perfectly.

// JavaScript Document

var posX;
var posY;
var element;

function drag(event) {
    element = document.getElementById("square");
    posX = event.clientX -parseInt(element.offsetLeft);
    posY = event.clientY -parseInt(element.offsetTop);
    document.addEventListener("mousemove", move, false);
}

function move(event) {

    if (typeof(document.getElementById("square").mouseup) == "undefined")
        element.addEventListener("mouseup", 开发者_如何学Pythondrop, false);
    //Prevents redundantly adding the same event handler repeatedly

    element.style.left = event.clientX - posX + "px";
    element.style.top = event.clientY - posY + "px";
}    

function drop() {
    document.removeEventListener("mousemove", move, false);
    element.removeEventListener("mouseup", drop, false);
}

And the html is either:

<div id="square" onmousedown="drag(event)"></div>

or

<p id="square" onmousedown="drag(event)">meep</p>

and some css to save time:

#square {
    position: relative;
    width: 100px;
    height: 100px;
    background: red;
}

Thank you all for your answers and your time!

EDIT: A <div> seems to work perfectly with text in it, but not a <p>


does your <p> element have margin or padding? I'm guessing that's what pushes it out of place

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜