Javascript 使用.css()定位工具提示

Javascript 使用.css()定位工具提示,javascript,jquery,html,css,jquery-mobile,Javascript,Jquery,Html,Css,Jquery Mobile,我用CSS创建了一个工具提示,我想把箭头放在每个按钮图标的正上方。我尝试过使用jQuery Mobile,但它对我不起作用,所以现在最简单的方法是手动定位工具提示:( 此外,我还想知道,如果我在不同分辨率的移动应用程序上使用此页面,或者缩小页面大小,手动定位工具提示是否会改变 我尝试使用.offset()在每个按钮id的相对区域获得工具提示类 var CS_x_pos = $("#CS").offset(); var CS_y_pos = $("#CS").offset(); var GH_x

我用CSS创建了一个工具提示,我想把箭头放在每个按钮图标的正上方。我尝试过使用jQuery Mobile,但它对我不起作用,所以现在最简单的方法是手动定位工具提示:(

此外,我还想知道,如果我在不同分辨率的移动应用程序上使用此页面,或者缩小页面大小,手动定位工具提示是否会改变

我尝试使用
.offset()
在每个按钮id的相对区域获得工具提示类

var CS_x_pos = $("#CS").offset();
var CS_y_pos = $("#CS").offset();

var GH_x_pos = $("#GH").offset();
var GH_y_pos = $("#GH").offset();

//CS
$(".tooltip").css({
    left: CS_x_pos, 
    top: CS_y_pos 
});


//GH
$(".tooltip").css({
    left: GH_x_pos, 
    top: GH_y_pos 
});
当我尝试时:

var CS_x_pos = $("#CS").offset().left;
var CS_y_pos = $("#CS").offset().top;
我明白了:

我不知道为什么刀尖会落在底部

这是我的JSFIDLE:

我原以为
.offset()
会将工具提示放置在相对区域周围,但它仍然非常远=/


有人能帮我或指导我手动定位这些工具提示吗?非常感谢!

因为您没有考虑工具提示本身的高度和宽度

计算其高度和宽度,并减去顶部和左侧的值

var width = parseFloat($(".tooltip").css('width'));
var height = parseFloat($(".tooltip").css('height'));

$(".tooltip").css({
    left: CS_x_pos - width, 
    top: CS_y_pos - height 
});

因为您没有考虑工具提示本身的高度和宽度

计算其高度和宽度,并减去顶部和左侧的值

var width = parseFloat($(".tooltip").css('width'));
var height = parseFloat($(".tooltip").css('height'));

$(".tooltip").css({
    left: CS_x_pos - width, 
    top: CS_y_pos - height 
});

因为您没有考虑工具提示本身的高度和宽度

计算其高度和宽度,并减去顶部和左侧的值

var width = parseFloat($(".tooltip").css('width'));
var height = parseFloat($(".tooltip").css('height'));

$(".tooltip").css({
    left: CS_x_pos - width, 
    top: CS_y_pos - height 
});

因为您没有考虑工具提示本身的高度和宽度

计算其高度和宽度,并减去顶部和左侧的值

var width = parseFloat($(".tooltip").css('width'));
var height = parseFloat($(".tooltip").css('height'));

$(".tooltip").css({
    left: CS_x_pos - width, 
    top: CS_y_pos - height 
});

有很多与工具提示相关的插件,比如jqueryui或者jqueryui,你可以在谷歌上找到更多

如果您希望它完全使用css,最好的方法是包装工具提示和触发器元素

<div class="holder"> 
<div class = "tooltip">
        <div class = "tooltip_body"> GH is OFF
            <div class = "tooltip_arrow"></div>
        </div>
 </div>
 <a class="holder" data-role="button" data-icon="plus"> GH</a>
 </div>
“左”和“右”可以将“相对”(如“左:0”或“右:0”)设置为保持架位置(不受更改窗口大小的影响)。只有在希望工具提示相对于保持架居中的情况下,才可以写入

$('.tooltip').each(function(){
   var elm=$(this),
       holder=elm.closest('.holder');
   elm.css({
    'bottom':holder.height()+'px',
    'left':-(elm.outerWidth()-holder.outerWidth())/2+'px'
   });
});

有很多与工具提示相关的插件,比如jqueryui或者jqueryui,你可以在谷歌上找到更多

如果您希望它完全使用css,最好的方法是包装工具提示和触发器元素

<div class="holder"> 
<div class = "tooltip">
        <div class = "tooltip_body"> GH is OFF
            <div class = "tooltip_arrow"></div>
        </div>
 </div>
 <a class="holder" data-role="button" data-icon="plus"> GH</a>
 </div>
“左”和“右”可以将“相对”(如“左:0”或“右:0”)设置为保持架位置(不受更改窗口大小的影响)。只有在希望工具提示相对于保持架居中的情况下,才可以写入

$('.tooltip').each(function(){
   var elm=$(this),
       holder=elm.closest('.holder');
   elm.css({
    'bottom':holder.height()+'px',
    'left':-(elm.outerWidth()-holder.outerWidth())/2+'px'
   });
});

有很多与工具提示相关的插件,比如jqueryui或者jqueryui,你可以在谷歌上找到更多

如果您希望它完全使用css,最好的方法是包装工具提示和触发器元素

<div class="holder"> 
<div class = "tooltip">
        <div class = "tooltip_body"> GH is OFF
            <div class = "tooltip_arrow"></div>
        </div>
 </div>
 <a class="holder" data-role="button" data-icon="plus"> GH</a>
 </div>
“左”和“右”可以将“相对”(如“左:0”或“右:0”)设置为保持架位置(不受更改窗口大小的影响)。只有在希望工具提示相对于保持架居中的情况下,才可以写入

$('.tooltip').each(function(){
   var elm=$(this),
       holder=elm.closest('.holder');
   elm.css({
    'bottom':holder.height()+'px',
    'left':-(elm.outerWidth()-holder.outerWidth())/2+'px'
   });
});

有很多与工具提示相关的插件,比如jqueryui或者jqueryui,你可以在谷歌上找到更多

如果您希望它完全使用css,最好的方法是包装工具提示和触发器元素

<div class="holder"> 
<div class = "tooltip">
        <div class = "tooltip_body"> GH is OFF
            <div class = "tooltip_arrow"></div>
        </div>
 </div>
 <a class="holder" data-role="button" data-icon="plus"> GH</a>
 </div>
“左”和“右”可以将“相对”(如“左:0”或“右:0”)设置为保持架位置(不受更改窗口大小的影响)。只有在希望工具提示相对于保持架居中的情况下,才可以写入

$('.tooltip').each(function(){
   var elm=$(this),
       holder=elm.closest('.holder');
   elm.css({
    'bottom':holder.height()+'px',
    'left':-(elm.outerWidth()-holder.outerWidth())/2+'px'
   });
});


请将代码也包括在你的帖子中。你不必获取整个库,而且也不会有任何伤害。因为你设计的是“移动”,那么你可以期望用户拥有一个操作系统和浏览器,可以处理小的占用空间,并在没有问题的情况下增加几秒钟的“mili”。但是你可以下载任何“片段”只需转到部分并查看复选框。单击
切换所有
即可撤消所有操作。然后向下滚动到
窗口小部件
部分并选中
工具提示
,从而使您只需下载widgetPlus所需的内容即可下载到SpYk3HH的建议中,尽管引用被公然滥用。:-DLoL@isherwood.+1 to isherwood随机回答,让我哈哈大笑!@SpYk3HH我会尝试一下,让你知道会发生什么!谢谢你的帮助!请在你的帖子中也包含代码。你不必获取整个库,也不会有任何伤害。因为你在设计“手机”,那么你可以期望用户拥有一个操作系统和浏览器,可以处理小的占用空间,并且可以无问题地多用几秒钟。但是你可以下载任何一个“片段”只需转到部分并查看复选框。单击
切换所有
即可撤消所有操作。然后向下滚动到
窗口小部件
部分并选中
工具提示
,从而使您只需下载widgetPlus所需的内容即可下载到SpYk3HH的建议中,尽管引用被公然滥用。:-DLoL@isherwood.+1 to isherwood随机回答,让我哈哈大笑!@SpYk3HH我会尝试一下,让你知道会发生什么!谢谢你的帮助!请在你的帖子中也包含代码。你不必获取整个库,也不会有任何伤害。因为你在设计“手机”,那么你可以期望用户拥有一个操作系统和浏览器,可以处理小的占用空间,并且可以无问题地多用几秒钟。但是你可以下载任何一个“片段”只需转到部分并查看复选框。单击
切换所有
即可撤消所有操作。然后向下滚动到
窗口小部件
部分并选中
工具提示
,从而使您只需下载widgetPlus所需的内容即可下载到SpYk3HH的建议中,尽管引用被公然滥用。:-DLoL@isherwood.+1 to isherwood随意回答让我开心的问题!@SpYk3HH我会尝试一下,让你知道会发生什么!谢谢你的帮助!请在你的帖子中也包含代码。你不必获取整个库,而且不会有任何伤害。因为你是desi