jQuery get mouse position within an element

后端 未结 8 940
日久生厌
日久生厌 2020-11-22 16:56

I was hoping to craft a control where a user could click inside a div, then drag the mouse, then let up on the mouse in order to indicate how long they want something to be.

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-22 17:49

    @AbdulRahim answer is almost correct. But I suggest the function below as substitute (for futher reference):

    function getXY(evt, element) {
                    var rect = element.getBoundingClientRect();
                    var scrollTop = document.documentElement.scrollTop?
                                    document.documentElement.scrollTop:document.body.scrollTop;
                    var scrollLeft = document.documentElement.scrollLeft?                   
                                    document.documentElement.scrollLeft:document.body.scrollLeft;
                    var elementLeft = rect.left+scrollLeft;  
                    var elementTop = rect.top+scrollTop;
    
                    x = evt.pageX-elementLeft;
                    y = evt.pageY-elementTop;
    
                    return {x:x, y:y};
                }
    
    
    
    
                $('#main-canvas').mousemove(function(e){
                    var m=getXY(e, this);
                    console.log(m.x, m.y);
                });
    

提交回复
热议问题