【问题标题】:Overlap Formatting [closed]重叠格式[关闭]
【发布时间】:2013-02-15 00:37:54
【问题描述】:

我有一个函数 isOverlap,它告诉两个对象是否重叠,这里是源代码:

    function isOverlap(idOne,idTwo){
    var objOne=$("#"+idOne),
        objTwo=$("#"+idTwo),
        offsetOne = objOne.offset(),
        offsetTwo = objTwo.offset(),
        topOne=offsetOne.top,
        topTwo=offsetTwo.top,
        leftOne=offsetOne.left,
        leftTwo=offsetTwo.left,
        widthOne = objOne.width(),
        widthTwo = objTwo.width(),
        heightOne = objOne.height(),
        heightTwo = objTwo.height();
    var leftTop = leftTwo > leftOne && leftTwo < leftOne+widthOne 
            && topTwo > topOne && topTwo < topOne+heightOne,
        rightTop = leftTwo+widthTwo > leftOne && leftTwo+widthTwo < leftOne+widthOne 
            && topTwo > topOne && topTwo < topOne+heightOne,
        leftBottom = leftTwo > leftOne && leftTwo < leftOne+widthOne 
            && topTwo+heightTwo > topOne && topTwo+heightTwo < topOne+heightOne,
        rightBottom = leftTwo+widthTwo > leftOne && leftTwo+widthTwo < leftOne+widthOne 
            && topTwo+heightTwo > topOne && topTwo+heightTwo < topOne+heightOne;
    return leftTop || rightTop || leftBottom || rightBottom;
}

我需要的主要是如何格式化调用函数,有什么帮助吗?这是我失败的尝试:

   if($(document).isOverlap("#mario", ".block")) {
       $(".block").hide("explode", { pieces: 16 }, 100);
   });

你可以找到我正在尝试制作的程序here

【问题讨论】:

    标签: javascript jquery debugging overlap graphical-interaction


    【解决方案1】:
    isOverlap("#mario", ".block")
    

    您传递给此函数的字符串是完整的 jQuery 选择器。

    因此,函数内部的"#"+idOne变成了"##mario",这显然是错误的。

    此外,如果这些选择器中的任何一个匹配多个元素,您的代码将无法正常工作。

    【讨论】:

    • isOverlap 是正常功能。您可以像调用任何其他函数一样调用它:isOverlap(...)。您需要学习 Javascript 的基础知识。
    【解决方案2】:

    我发现问题在于,当我尝试将 .click 行更改为 .isOverlap 时,我只是有一个不需要的 )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-09
      • 2021-02-16
      • 2012-01-15
      • 1970-01-01
      • 2015-02-06
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多