2012-10-10 133 views
0

搜索并尝试很长时间后,我似乎无法找到此解决方案。 我想要做的是使箭头动起来,到点击按钮上方的特定位置。有3个按钮(我们称它们为A,B和C),如果单击A,箭头将会到达那里,当点击C时,箭头将从A到C,或者当单击B时,它将从A到B使用jQuery将元素动画到任何位置的固定位置

由于位置和距离每次都会改变,因此一个简单的“左”动画功能将不起作用。我已经尝试过.step功能,我想它可以用这种方法,但我似乎无法按照它应该的方式工作。没有太多有关.step功能的信息。

最近我已经达到这个目标,它从任何地方移动到正确的位置,但是它没有动画,只是跳跃。下面是代码行:

Symbol.bindElementAction(compId, symbolName, "${_Button1}", "click", function(sym, e) { 
    sym.$("arrow").css({"-webkit-transform":"translate(11px, 201px)"}) 
}); 

(怪异的标记是因为我在Adobe工作边我测试做HTML(5)/ JavaScript的广告的所有可能的方式,这是一个。他们)

回答

1

我会怎么做箭头动画到点击的按钮:

$('.btn').click(function(){ 
    $('#arrow').animate({ 
    'left': ($(this).offset().left + ($(this).outerWidth()/2)) - $('#arrow').outerWidth(), 
    'top': $(this).offset().top - 20 
    }); 
}); 

而且,使箭头position:absolute;如果自己不按键有position:fixed

也许我完全不明白这个问题。但我不明白为什么这不起作用。

如果您的意思是不断变换btns位置,则需要将动画放置在setInterval()中。

在Adobe封边代码必须是这样的(基于this链接)

sym.$('#arrow').animate({ 
    'left': ($(this).offset().left + ($(this).outerWidth()/2)) - $('#arrow').outerWidth(), 
    'top': $(this).offset().top - 20 
    }); 

我从来没有使用的Adobe边缘,但我可能是你的错误(JavaScript错误事件处理程序!事件类型=元素)在这里有this问题,还有另一个名称来引用触发事件的对象。

+0

我只是试过这个,但我不知道我是否做错了什么,或者Edge是否无法处理一些代码。它不会让我得到偏移量,它返回了我以前没有见过的错误,无法在Google上找到:事件处理程序中的Javascript错误!事件类型=元素。这看起来像一个边缘唯一的错误... – Levi

+0

我刚刚测试过,如果边缘可以识别$(这),它可以很好。 $(this).offset也没有返回错误,它返回“null”。 $(this).offset()。left确实给出了我之前发布的错误。 – Levi

+0

它用'$(this)'返回是什么? – Sem