2012-10-10 94 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