Tôi muốn trình đơn thả xuống bootstrap của tôi được đặt ở vị trí chuột. Vì lý do nào đó, pageX và pageY là sai. Để sửa vị trí tôi phải cộng hoặc trừ từ x và y. NHƯNG, nếu tôi phóng to hoặc thu nhỏ, X và Y không chính xác nữa. Tôi đã thử mọi thứ ở đó. Đây là một trong số họ ..Javascript bootstrap trình đơn thả xuống mở tại vị trí chuột
Html:
<div class="dropdown">
<div id="menuitems" onclick="setposition(event)" class="dropdown-toggle" data-toggle="dropdown">
Menu
</div>
<ul class="dropdown-menu" id="xxx" role="menu" aria-labelledby="menuitems">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#"</i>Link 1</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#"</i>Link 2</a></li>
</ul>
</div>
Script
function setposition(e) {
var bodyOffsets = document.body.getBoundingClientRect();
tempX = e.pageX - bodyOffsets.left;
tempY = e.pageY;
$("#xxx").css({ 'top': tempY, 'left': tempX });
}
gì tôi cần phải làm để có được đúng X và vị trí Y với độ phân giải khác nhau ?
Cảm ơn bạn
Cảm ơn. Tôi đã tìm thấy một vấn đề khác. Vùng chứa của tôi có lề: ô tô tập trung tất cả nội dung. Đối với một số lý do, điều này gây trở ngại cho tọa độ vị trí của chuột, (cung cấp dây không chính xác và các vị trí khác nhau khi phóng to). Bất kỳ cách nào để bỏ qua này hoặc tôi buộc phải không trung tâm nội dung của tôi (lol); D? – Reft
Được rồi, tôi đã tìm ra. Tôi đã có một phần tử cha có lề: tự động, tập trung vào trang web hoàn chỉnh. Tôi phải tính đến điều đó và thêm nó vào X và Y. Đó là một lời giải thích tốt: http://stackoverflow.com/questions/16479179/js-pagex-and-pagey-take-the-coordinate -plus-the-margin-of-relative-position-div – Reft