我使用的是JQuery,我想在文本上鼠标移动/悬停时显示一个图像。我想这样做,而不必将图片添加到我的HTML文件。我不希望图片显示在我的html页面上。我试了一下span,但这把它添加到了页面中。我不想它显示在页面的任何地方,除非文本是悬空的。
这是到目前为止我的代码
$(document).ready(() => {
const $container = $('<div id="container">')
$('body').append($container)
const $h1 = $('<h1>').text('Hogwarts Magic School')
$container.append($h1)
var $h4Wand = $('<h4 id="wand">').text('Unicorn Wand')
$($container).append($h4Wand)
$('#wand').on('mouseover', function() {
$('#popup').show()
})
$('#wand').on('mouseover', function() {
$('#popup').hide()
})
});<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Hogwarts</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="main.css">
<script
src="https://code.jquery.com/jquery-3.2.0.min.js"
integrity="sha256-JAW99MJVpJBGcbzEuXk4Az05s/XyDdBomFqNlM3ic+I="
crossorigin="anonymous"></script>
</head>
<body>
<h5>spring 2020</h5>
<span id="popup"><img src="wand.jpg"/></span>
<script type="text/javascript" src="app.js"></script>
</body>
</html>强文本
发布于 2020-10-04 04:21:47
问题是您绑定了两个mouseover事件,为了达到目标,当您想要隐藏图像时,需要使用mouseout来代替。
$(document).ready(() => {
const $container = $('<div id="container">')
$('body').append($container)
const $h1 = $('<h1>').text('Hogwarts Magic School')
$container.append($h1)
var $h4Wand = $('<h4 id="wand">').text('Unicorn Wand')
$($container).append($h4Wand);
$('#popup').hide();
$('#wand').on('mouseover', function() {
$('#popup').show();
})
$('#wand').on('mouseout', function() {
$('#popup').hide();
})
});<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Hogwarts</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="main.css">
<script
src="https://code.jquery.com/jquery-3.2.0.min.js"
integrity="sha256-JAW99MJVpJBGcbzEuXk4Az05s/XyDdBomFqNlM3ic+I="
crossorigin="anonymous"></script>
</head>
<body>
<h5>spring 2020</h5>
<span id="popup"><img src="https://s1.ax1x.com/2020/10/04/08bjVU.png"/></span>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
另一种选择是使用变量来确定它是隐藏还是显示图像,--我认为这种方法比以前的更有效
var count = 0;
$(document).ready(() => {
const $container = $('<div id="container">')
$('body').append($container)
const $h1 = $('<h1>').text('Hogwarts Magic School')
$container.append($h1)
var $h4Wand = $('<h4 id="wand">').text('Unicorn Wand')
$($container).append($h4Wand);
$('#popup').hide();
$('#wand').on('mouseover', function() {
if(count%2==0){
$('#popup').show();
}else{
$('#popup').hide();
}
count++;
})
});<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Hogwarts</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="main.css">
<script
src="https://code.jquery.com/jquery-3.2.0.min.js"
integrity="sha256-JAW99MJVpJBGcbzEuXk4Az05s/XyDdBomFqNlM3ic+I="
crossorigin="anonymous"></script>
</head>
<body>
<h5>spring 2020</h5>
<span id="popup"><img src="https://s1.ax1x.com/2020/10/04/08bjVU.png"/></span>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
发布于 2020-10-04 04:24:45
好的,首先,当页面第一次加载时,您需要隐藏弹出范围。
您可以在html中这样做:
<span id="popup" style="display:none;"><img src="wand.jpg"/></span>
或者在css中:
#popup {display: none;}
然后您需要查看您的事件侦听器。目前,您已经向mouseover事件添加了两个侦听器,因此正在发生的是,第一个监听器显示弹出窗口,第二个监听器立即隐藏它。
我认为您需要将隐藏函数绑定到mouseout事件
$('#wand').on('mouseout', function() {
$('#popup').hide()
})https://stackoverflow.com/questions/64190726
复制相似问题