随机重新定位 jQuery UI 对话框(彩蛋)

Randomly reposition jQuery UI dialog (easter egg)

我目前正在我的应用程序中实现彩蛋功能。每当用户将鼠标悬停在 jQuery UI 关闭按钮上时,对话框 div 应该随机重新定位(因此用户无法关闭它)。

这是我到目前为止尝试过的方法:

$('.ui-icon-closethick').hover(function() {
    console.log("hover");

    $('#trollDialog').dialog('option', 'position', 
        [randomX, randomY]
    );
});

不幸的是,对话框根本没有重新定位。我如何重新定位具有绝对 x 和 y 位置的对话框?

不是绝对定位,而是你can do relative:

$('.ui-icon-closethick').hover(function(e) {
    var newPos = (Math.floor(Math.random() * 2) == 0 ? "left-" : "right-") +
                 (Math.floor(Math.random() * 100)) + " " +
                 (Math.floor(Math.random() * 2) == 0 ? "bottom-" : "top-") +
                 (Math.floor(Math.random() * 100));
    $( "#trollDialog" ).dialog( "option", "position", { 
        my: newPos
    });
});

不是完美的随机化,但无论如何都是一个例子

这是一个快速的工作示例:

$("#dialog").dialog();
$(".ui-dialog-titlebar-close").hover(function () {
    var randomPos = "left" + (Math.random() * 10 < 5 ? "-" : "+") + Math.random() * 100 + " " + "top" + (Math.random() * 10 < 5 ? "-" : "+") + Math.random() * 100;
    $("#dialog").dialog("option", "position", { my: randomPos });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<div id="dialog" title="Hover to Move"></div>

如果要使用 jQuery-UI 的 position[,则必须设置 lefttop 属性的偏移量=15=]

注意:如果您查看 "Full Page"

,该代码段效果会更好