gpt4 book ai didi

javascript - 纯 JavaScript 工具提示

转载 作者:行者123 更新时间:2023-12-03 12:35:02 25 4
gpt4 key购买 nike

我正在尝试用纯 JavaScript 制作工具提示,显示在 hover .就像 Stack Overflow 中将鼠标悬停在配置文件名称上的一个 div显示。

我尝试使用 onmouseover , onmouseout并添加了 setTimeout给用户几秒钟的时间将鼠标移到工具提示内容上。但它并没有像我想象的那样工作。

比起使用任何库,我真的更喜欢纯 JavaScript。有人可以帮我吗?

这就是我在纯 JavaScript 中所做的。

HTML

<div class = "name" onmouseover="show()" onmouseout="hide()">
NAME
<div class = "tooltip">
PROFILE DETAILS
</div>
</div>

<div class = "name" onmouseover="show()" onmouseout="hide()">
NAME 2
<div class = "tooltip" >
PROFILE DETAILS 2
</div>
</div>

<div class = "name" onmouseover="show()" onmouseout="hide()">
NAME 3
<div class = "tooltip" >
PROFILE DETAILS 3
</div>
</div>

CSS
.name{
float:left;
margin:100px;
border:1px solid black;
}
.tooltip{
position:absolute;
margin:5px;
width:200px;
height:100px;
border:1px solid black;
display:none;
}

JavaScript
var name = document.getElementsByclassName("name");
var tp = document.getElementsByclassName("tooltip");

function show(){
tp.style.display="block";
}
function hide(){
tp.style.display="";
}

最佳答案

没有 JavaScript 的解决方案
这使用 CSS 伪悬停来设置隐藏元素的显示。显示 none 需要在样式中而不是在元素上,因此可以在悬停时覆盖它。

.couponcode:hover .coupontooltip {
/* NEW */
display: block;
}

.coupontooltip {
display: none;
/* NEW */
background: #C8C8C8;
margin-left: 28px;
padding: 10px;
position: absolute;
z-index: 1000;
width: 200px;
height: 100px;
}

.couponcode {
margin: 100px;
}
<div class="couponcode">First Link
<span class="coupontooltip">Content 1</span>
<!-- UPDATED -->
</div>

<div class="couponcode">Second Link
<span class="coupontooltip"> Content 2</span>
<!-- UPDATED -->
</div>

External Link
跟进:
如果您需要支持非常旧的浏览器,则需要在鼠标进入 div 时向外部元素添加一个类。并在鼠标离开时删除该类。

编辑
您的代码不起作用,因为 tp 是什么?是元素的集合,您将其视为一个。您需要做的是传递对元素的引用
HTML:
<div class = "name" onmouseover="show(this)" onmouseout="hide(this)">  <!-- added "this" 2 times -->
**JavaScript:
//var name = document.getElementsByclassName("name");  /* not needed */
// var tp = document.getElementsByclassName("tooltip"); /* not needed */


function show (elem) { /* added argument */
elem.style.display="block"; /* changed variable to argument */
}
function hide (elem) { /* added argument */
elem.style.display=""; /* changed variable to argument */
}

关于javascript - 纯 JavaScript 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com