使用offset();坐标触发fadeOut();

时间:2016-06-26 04:05:30

标签: javascript jquery if-statement offset

你可以告诉我的代表我是一个超级新手,如果这对你来说很简单,我会道歉。

我有一个模型太阳能系统在HTML和CSS中旋转。我在那里拼凑了一些JS,让行星在hover上播放一些音乐和fadeOut()

但是,我想删除hover()并让行星根据它们的坐标做他们的事情;每个人在遇到某个坐标时都会弹奏一个音符。

我试过这个:

$(document).ready(function() {
    var x = $("#mercury").offset;
if(x.top >= 1200.00 && x.left >=1000.00){
    $("#mercury").fadeOut("slow");

};

但是,没有任何反应。

我确定这是我自己的无知问题,我可能写错了,但我需要帮助。

简而言之,我如何根据offset()坐标触发事件?

2 个答案:

答案 0 :(得分:0)

要调用函数,您需要在函数名后面加上括号。所以你需要将.offset更改为.offset()。如果关闭大括号的条件丢失,你也有。因此,请尝试始终缩进代码,这样您将看到开始和结束括号。

试试这个。

$(document).ready(function() {
    var x = $("#mercury").offset();
    if(x.top >= 1200.00 && x.left >= 1000.00){
        $("#mercury").fadeOut("slow");
    }
};

答案 1 :(得分:0)

你有动画运行循环吗? (经常调用以更新界面的函数)。

您正在准备好'文档中执行代码。功能。此功能仅执行一次'当您的页面加载完毕后再也没有。

要实现您想要的效果,您需要不断执行代码,以便对每个动画帧进行检查(正如您的动画一样)。

如果您还没有运行循环来放入代码,您可以设置一个间隔,以便不断检查行星位置。

示例

$(document).ready(function(){

    var myLoop = window.setInterval(function() {

       var x = $("#mercury").offset();
       if(x.top >= 1200.00 && x.left >= 1000.00){
           $("#mercury").fadeOut("slow");
       }

    }, 200); // Execute the above every 200 milliseconds
});

如果你想要停止检查/循环,只需执行:

window.clearTimeout(myLoop);