javascript - 记录选定的文本位置给出错误的结果

标签 javascript jquery html

一旦用户选择了一些文本,我就尝试显示工具提示。客户选择文本后,我将弹出窗口放置在所选文本附近,因为我使用此功能,但我得到了错误的 xy 位置。有什么帮助吗?

$(document).ready(function(){
    $('.document').click(function(e) {
        if(getSelectedText()  !="") { //checking user selected some text?
            var x = e.pageX;
            var y = e.pageY;
               $(".savetooltipAll").css("top",y); //wrong not near to text selection
               $(".savetooltipAll").css("left",x); //wong not near to text selection
               $(".savetooltipAll").show();

        } else {
            $(".savetooltipAll").hide();
        }
    })

});

最佳答案

很快就制作了一个版本。 需要更改/优化定位以适应您的 HTML 代码和需求。

Jsfiddle: http://jsfiddle.net/j5jzaa5e/

$(document).ready(function(){
    $('body').mouseup(function(e) {
        // Get the selection range
        var range = window.getSelection().getRangeAt(0);

        // Check if text was actually selected
        if (!range.collapsed) {
            // Get bounds & set tooltip pos
            var bounds = range.getBoundingClientRect();

            var x = bounds.left + ((bounds.right - bounds.left - $(".savetooltipAll").outerWidth()) / 2);
            var y = bounds.top - $(".savetooltipAll").outerHeight() + $(window).scrollTop();
            $(".savetooltipAll").css("top", y + 'px');
            $(".savetooltipAll").css("left",x + 'px');
            $(".savetooltipAll").show();

        } else {
            $(".savetooltipAll").hide();
        }
    })
});

关于javascript - 记录选定的文本位置给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27618422/

相关文章:

javascript - AngularJS 和 Q.fcall

javascript - keypress 和 keyup - 为什么 keyCode 不同?

javascript - HTML 中的 Adob​​e JavaScript : Step ZERO

javascript - 用javascript调用jquery函数

javascript - 将数据属性从“like”按钮复制到父列表项

html - MediaWiki:将 css 应用到图像

javascript - 为什么 jquery 验证不起作用?

javascript - 我已经使用 jquery 阻止了表单提交。如何在不删除当前代码的情况下再次提交表单?

javascript - 使用 JavaScript 将新行添加到表时重置输入字段

javascript - 关于我正在创建的网页的问题