纯JavaScript工具提示
我试图用纯JavaScript制作一个工具提示,显示在纯JavaScript工具提示,javascript,tooltip,Javascript,Tooltip,我试图用纯JavaScript制作一个工具提示,显示在悬停上。与将鼠标悬停在配置文件名称上的堆栈溢出一样,将显示div 我尝试使用onmouseover,onmouseout并添加了setTimeout,让用户有几秒钟的时间在工具提示内容上移动鼠标。但它并不像我想的那样起作用 与使用任何库相比,我更喜欢纯JavaScript。有人能帮我吗 这就是我在纯JavaScript中所做的 HTML JavaScript var name = document.getElementsByclassNam
悬停
上。与将鼠标悬停在配置文件名称上的堆栈溢出一样,将显示div
我尝试使用onmouseover
,onmouseout
并添加了setTimeout
,让用户有几秒钟的时间在工具提示内容上移动鼠标。但它并不像我想的那样起作用
与使用任何库相比,我更喜欢纯JavaScript。有人能帮我吗
这就是我在纯JavaScript中所做的 HTML JavaScript
var name = document.getElementsByclassName("name");
var tp = document.getElementsByclassName("tooltip");
function show(){
tp.style.display="block";
}
function hide(){
tp.style.display="";
}
即使是$(document).ready,也很难在纯JS中实现。请参见此处:
所以我使用了一个简单的版本:
window.addEventListener("load", function () {
var couponcodes = document.getElementsByClassName("couponcode");
for (var i = 0; i < couponcodes.length; i++) {
couponcodes[i].addEventListener("mouseover", function () {
var coupontooltip = this.getElementsByClassName("coupontooltip")[0];
coupontooltip.removeAttribute("style");
});
couponcodes[i].addEventListener("mouseout", function () {
var coupontooltip = this.getElementsByClassName("coupontooltip")[0];
coupontooltip.style.display = "none";
});
}
});
window.addEventListener(“加载”,函数(){
var couponcodes=document.getElementsByClassName(“couponcode”);
对于(变量i=0;i
不含JavaScript的解决方案
这使用CSS伪悬停来设置隐藏元素的显示。“显示无”不需要在样式中,也不需要在元素上,这样就可以在悬停时覆盖它
HTML:
<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>
.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 = "name" onmouseover="show(this)" onmouseout="hide(this)"> <!-- added "this" 2 times -->
示例:
<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>
.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 = "name" onmouseover="show(this)" onmouseout="hide(this)"> <!-- added "this" 2 times -->
跟进:
<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>
.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 = "name" onmouseover="show(this)" onmouseout="hide(this)"> <!-- added "this" 2 times -->
如果您需要支持非常旧的浏览器,则需要在鼠标进入div时向外部元素添加一个类,并在鼠标离开时删除该类
编辑 您的代码不起作用,因为什么是tp?是元素的集合,您将其视为一个。您需要做的是传入对元素的引用 HTML:
<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>
.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 = "name" onmouseover="show(this)" onmouseout="hide(this)"> <!-- added "this" 2 times -->
修复原始代码
我在找类似的东西,我看到了这一页。
它对我有帮助,但我必须修复你的代码,才能让它工作。我想这就是你尝试过的。
您必须根据对象的“ID”参照对象。
以下是我所做的工作,它是有效的:
HTML
JS
对于非自定义工具提示,您只需将要在工具提示中显示的消息添加到主
div的title属性中即可。就这样,
<div class = "name" onmouseover="show()" onmouseout="hide()" title="PROFILE DETAILS">
这样就不需要添加onmouseover
和onmouseout
事件处理程序。
document.addEventListener(“mousemove”,函数(e){
如果(e.target.id!=“”){
e、 target.title=“#”+e.target.id;
}
}); 代码>
随机的东西
更多随机的东西
为什么要使用JavaScript?纯CSS可以工作…在纯js中检查此链接我需要使用转换使内容停留几秒钟,这在跨浏览器中没有帮助我不想要jQuery我需要纯JavaScript我做了并在JSFIDLE中检查了它,但它不工作如果我想在工具脚本中使用ajax从数据库获取内容这是一个优雅的解决方案,值得更多的投票。小提琴太棒了+1@MemetOlsen,我喜欢这个工具提示。有没有办法将工具提示移动到控件的右边缘?我知道它使用的是左边距,但有没有办法,比如说从输入框的最右边开始?:hover>。coupontoltip
可以让你将工具提示放在任何东西里面。