获取屏幕上的元素水平位置

Ric*_*Joe 0 jquery

我有这个菜单jquery函数:

$("#text").click(function(evt) {
    $("#menu").css({
        top: 45,
        left: evt.pageX
    }).toggle();
    evt.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

它工作正常,但菜单在鼠标点击正上方打开,如果我点击字母k(来自clicK),它将在K上方打开.

我希望它始终与#text div一样打开,如上图所示:

在此输入图像描述

我需要改变什么?任何想法,以解决它?

https://jsfiddle.net/z4ugf5ru/

A. *_*lff 5

您应该使用offset()jq方法来获取和设置相关left属性:

$("#text").click(function(evt) {
    $("#menu").css({
        top: 45, // or not hardcoded: $(this).offset().top + 45,
        left: $(this).offset().left
    }).toggle();
    evt.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

-jsFiddle-