Bootstrap Modal窗口上的鼠标x y位置不正确

时间:2017-10-08 00:20:08

标签: jquery bootstrap-modal

我正在尝试使用Bootstrap在Modal窗口设置中获取x和y坐标。单击图像时会弹出模态窗口,但是当我单击模态窗口的任何位置时,它会给出相对于浏览器窗口而不是模态窗口的坐标。

HTML:

<div style="width: 200px; height: 200px;background-color: red; margin: 200px 
auto">
  <img src="image/Chrysanthemum.jpg" width="100%" height="100%" alt="">  
</div>



<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog" >
<!-- Modal content-->
<div class="modal-content" style="width: 700px; height: 600px">

  <div class="modal-body">
    <img src="" alt="" id="modal-img" width="100%" height="100%">
  </div>

</div>

   

JQuery的:

 $("img").on("click",(function(){

    var imgsrc = $(this).attr("src");             
      $("#modal-img").attr("src",imgsrc);
      $("#myModal").modal("show");     
}));



$("#myModal").on("click",function(e){
  var relativeX = e.pageX - this.offsetLeft;
  var relativeY = e.pageY - this.offsetTop;
   alert(relativeX + " " + relativeY);  
});

1 个答案:

答案 0 :(得分:0)

你的#myModal元素是模态的全宽背景,所以对于offsetTop和offsetLeft,它总是有0;你想要的是在背景中定位对话。

$("#myModal").on("click",function(e){
  var dialogElm = $("#myModal .modal-dialog");
  var relativeX = e.pageX - dialogElm.offset().left;
  var relativeY = e.pageY - dialogElm.offset().top;
   alert(relativeX + " " + relativeY);  
});