Jquery:当鼠标指针进入并离开元素时创建一个弹出窗口

时间:2015-02-23 17:23:23

标签: javascript jquery

当鼠标指针进入并离开元素时,我想在Web浏览器中间创建一个弹出窗口。弹出窗口显示我提供的图像。

我应该如何在Jquery中实现它?或者有任何好的插件可以做到吗?

由于

4 个答案:

答案 0 :(得分:0)

尝试使用jQuery UI对话框。

DEMO

答案 1 :(得分:0)

这很简单,你可以这样做:

$('.hovered_element').mouseenter(function() {
  // you can use some plugin here, or just a simple .show()
  $('.popup_element').show();

  //if you want popup to fade in
  //$('.popup_element').fadein(600);
});
$('.hovered_element').mouseleave(function() {
  // again: any js plugin method, or just .hide()
  $('.popup_element').hide();

  //if you want popup to fade out
  //$('.popup_element').fadeout(600); 
});

当然,您需要为.popup_element设置样式,使其显示在中心或您喜欢的任何位置。

答案 2 :(得分:0)

由于您不熟悉编码,我建议使用jQuery团队的jQueryUI库 - 其中包含.dialog()功能(他们称之为" widget")。以下是它的工作原理:

(1)<head></head>标记中包含jQuery jQueryUI库。请注意,您还必须为jQueryUI包含适当的CSS主题库(或者对话框将不可见):

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/flick/jquery-ui.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

(2)在HTML中创建一个空div,并将其初始化为对话框:

HTML:

<div id="myDlg"></div>

jquery的:

$('#myDlg').dialog({
    autoOpen:false,
    modal:true,
    width: 500,
    height: 'auto'
});

(3)然后,当您准备好显示对话框时,在打开对话框之前将新数据插入myDlg div:

$('#myDlg').html('<div>This will display in the dialog</div>');
$('#myDlg').dialog('open');

请注意,您可以在html()方法中添加任何HTML,包括图片。

上面的代码允许您更改对话框的内容,并且每次都使用重新相同的对话框DIV。


以下是工作示例的样子:

jsFiddle Demo

<强> HTML:

<div id="myDlg"></div>
<div id="questiona" class="allques">
    <div class="question">What is 2 + 2?</div>
    <div class="answer">4</div>
</div>
<div id="questionb" class="allques">
    <div class="question">What is the 12th Imam?</div>
    <div class="answer">The totally wacky reason why Iran wants a nuclear bomb.</div>
</div>

<强> jQuery的:

var que,ans;

$('#myDlg').dialog({
    autoOpen:false,
    modal:true,
    width: 500,
    height: 'auto',
    buttons: {
        "See Answer": function(){
            $('#myDlg').html(ans);
            $('.ui-dialog-buttonset').next('button').hide();
        },
        "Close": function(){
            $('#myDlg').html('').dialog('close');
        }
    }
});

$('.allques').hover(
    function(){
        //hover-IN
        que = $(this).find('.question').html();
        ans = $(this).find('.answer').html();
        $('#myDlg').html(que).dialog('open');
    },
    function(){
        //hover-OUT -- do nothing
    }

);

资源:

How to use Plugins for PopUp

http://jqueryui.com/dialog/

http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/

jQuery UI Dialog Box - does not open after being closed

Dynamically changing jQueryUI dialog buttons

jQuery UI dialog - problem with event on close

答案 3 :(得分:0)

将事件处理程序绑定到mouseout事件。有关详细信息,请参阅链接: http://api.jquery.com/mouseout/

解决问题的一种方法是创建一个div(它将保存你的弹出窗口)并使用hide和show jquery效果。