在TideSDK应用上检测窗口鼠标离开

时间:2013-05-23 07:27:52

标签: tidesdk

我正在使用TideSDK开发我的第一个应用程序。我有一些类似工具栏的按钮,我希望它们在鼠标离开窗口时淡出。

很遗憾看起来TideSDK不会在mouseout对象上触发mouseleavewindow个事件,而且我无法使用mousemove 检测它,因为很明显当光标不在主应用程序窗口时,不会触发mousemove个事件。

我没有在TideSDK官方文档中找到Ti.UI.UserWindow的任何鼠标相关事件。

有人有想法吗?
感谢。

4 个答案:

答案 0 :(得分:2)

我在TideSDK遇到同样的问题。在Chrome或Firefox window.onmouseleave工作正常,但不在TideSDK(愚蠢的旧Webkit):(但...... 你可以使用CSS和:将鼠标悬停在#wrapper里面:)你可以在每一侧移动#wrapper 1px(按位置:固定为例),然后你写了这样的东西:

#wrapper:hover #myelement{
// some CSS
}

答案 1 :(得分:1)

是否会在其他对象上触发mouseout或mouseleave事件?您可以创建另一个与窗口大小相同的对象并放置在背景中。

答案 2 :(得分:0)

可能的解决方法可能是使用计时器。每次定时器触发时,检查鼠标的位置,如果它不在窗口范围内,请手动触发鼠标左键。

我在TideSDK上没有足够的经验告诉你如何在屏幕上显示鼠标的位置,对不起。

答案 3 :(得分:0)

您不需要TideSDK来执行此操作,您只需使用JavaScript即可。

这是我在jQuery中所做的:

$(document).on("mouseenter", function() {
  return $("#side_bar_container").addClass("slide_in");
});

$(document).on("mouseleave", function() {
  $("#side_bar_container").removeClass("show_full_menu");
  $("#side_bar_container").removeClass("slide_in");
  return removeAllClasses("active", $(".show-archive"));
});

这适用于我当前的TideSDK应用以及我正在测试的所有浏览器。