首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jQuery在鼠标上显示图像

问用jQuery在鼠标上显示图像
EN

Stack Overflow用户
提问于 2020-10-04 02:47:53
回答 2查看 82关注 0票数 1

我使用的是JQuery,我想在文本上鼠标移动/悬停时显示一个图像。我想这样做,而不必将图片添加到我的HTML文件。我不希望图片显示在我的html页面上。我试了一下span,但这把它添加到了页面中。我不想它显示在页面的任何地方,除非文本是悬空的。

这是到目前为止我的代码

​

代码语言:javascript
复制
$(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()
    })
});
代码语言:javascript
复制
<!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>

强文本

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-04 04:21:47

问题是您绑定了两个mouseover事件,为了达到目标,当您想要隐藏图像时,需要使用mouseout来代替。

​

代码语言:javascript
复制
$(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();
    })
});
代码语言:javascript
复制
<!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>

​

另一种选择是使用变量来确定它是隐藏还是显示图像,--我认为这种方法比以前的更有效

​

代码语言:javascript
复制
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++;
    })
});
代码语言:javascript
复制
<!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>

​

票数 1
EN

Stack Overflow用户

发布于 2020-10-04 04:24:45

好的,首先,当页面第一次加载时,您需要隐藏弹出范围。

您可以在html中这样做:

<span id="popup" style="display:none;"><img src="wand.jpg"/></span>

或者在css中:

#popup {display: none;}

然后您需要查看您的事件侦听器。目前,您已经向mouseover事件添加了两个侦听器,因此正在发生的是,第一个监听器显示弹出窗口,第二个监听器立即隐藏它。

我认为您需要将隐藏函数绑定到mouseout事件

代码语言:javascript
复制
$('#wand').on('mouseout', function() {
    $('#popup').hide()
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64190726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档