动态jQuery工具提示

Dynamic jQuery Tooltip

本文关键字:工具提示 jQuery 动态      更新时间:2023-09-26

我有一个非常具体的请求。我一直在看其他的帖子,但找不到一个明确的答案,所以感谢帮助。

我希望得到一个jQuery工具提示,当悬停是一个正常的工具提示与文本居中。但是,当您单击该元素时,工具提示会向左侧变宽(文本将保持居中,因此当工具提示中心向左移动时,它看起来会向左移动),并且在下拉菜单中滑出工具提示。我仍然在围栏是否扩大是必要的,但我希望有能力下拉点击。

任何和所有的帮助,这将是非常感激。谢谢!

EDIT***我写了一些代码,我不能真正得到工作。现在我只是试图用div来解决这个问题,希望我可以用一个工具提示形状代替"工具提示"div,而不仅仅是一个框,但我想让事情在我担心之前工作。对以下代码的任何帮助都是感激的。谢谢!

我提前为缺少缩进和一些东西道歉,我不知道为什么我的代码不能很好地复制/粘贴到这里。

HTML:

<div id="wrapper">
<div class="topIconNew">
</div>
<div class="topTip">
</div>
<div class="topDrop">
</div>
</div>
CSS:

div#wrapper {
margin:0 auto;
width:100%;
height:100%;
position:relative;
    top:0;
    left:0;
}  
.topIconNew {
background-color:red;
border:solid 1px #444444;
width:20px;
height:20px;
position:fixed;
    top:50px;
    left:450px;
cursor:pointer    
}
.topTip {
background-color:#d3d3d3;
border:solid 1px #444444;
width:80px;
height:20px;
position:fixed;
    top:70px;
    left:450px;    
}    
.topDrop {
background-color:#ffffff;
border:solid 1px #555555;
width:100px;
height:300px;
position:fixed;
    top:90px;
    left:450px;        
}    
jQuery

$(document).ready(function() {
// tooltip hover
$("div.topIconNew").hover(
    function(){
        $("div.topTip").show();
    }
);        
//tooltip widening and dropdown menu
$("div.topIconNew").click(
    function(){
        //permanent tooltip
        $("div.topTip").show();
    },    
    function(){
        //widen tooltip
$("div.topTip").animate({width:200},"fast");
    },        
    function() {
        //show dropdown
        $("div.topDrop").slideDown(300);
    }
);
$("div.wrapper").click(
    function(){
        //hide dropdown (hide simultaneously)
        $("div.topDrop").hide();
    }
    function(){
        //hide tooltip (hide simultaneously)
        $("div.topTip").hide();
    {        
);
}); 
任何和所有的帮助都是非常感激的。谢谢!

假设从头开始构建

  1. 一个可以绝对定位的下拉菜单类
  2. 一个可以绝对定位的工具提示类
这将是重要的这些类是自包含的,例如下拉菜单应该处理所有绑定事件等…首先,我将悬停元素连接到触发工具提示的任何地方,然后定位工具提示并设置文本。然后,我将onClick事件附加到同一项,并在其中:
  1. 将工具提示标记为"悬停不再破坏它"(可能使用外部点击文档代替)
  2. 在工具提示对象上运行一个动画,将x位置设置为x-200(例如),并将宽度设置为+200 (.animate({x: '-=200', width: '+=200'}))
  3. 我将在animate上附加一个事件监听器,因此在动画结束时,我将相对于工具提示附加下拉列表

如果你分别对它们进行编码,那么将它们联系在一起应该很容易。在这样一个系统中,你只需要关注主要事件:

  1. 鼠标悬停在项目上查看工具提示
  2. 鼠标移出项目上的工具提示
  3. 点击项目飞出工具提示和标志为永久
  4. 附加下拉菜单
  5. 响应下拉事件