我目前正在研究一個有很多SVG動畫的項目。當用戶滾動到SVG時,需要觸發這些動畫。使用動態屬性鍵獲取javascript對象的屬性值
我決定爲每個Snap.SVG動畫製作功能,並將它們存儲在使用SVG的ID作爲像這樣的關鍵對象的數組:
//Example Object
var item = {
aboutUsSVG: function(){
//aboutUsSVG animation code to go here
}
}
我創建了一個Codepen的到目前爲止我的代碼在這裏:
http://codepen.io/decodedcreative/pen/mEpZbx
我設法創造微小物體的陣列。我有第二個功能,當SVG在屏幕上播放動畫。我無法使用動態鍵訪問存儲在數組中的動畫功能。
如果我知道的SVG的像這樣的名字我可以訪問功能:
var playAnimation = animations.animationsArray[0].ourCompanies;
playAnimation();
但我希望編寫可用於網站上的所有動畫的解決方案,從而希望查詢的DOM對於SVG ID,然後查找相應的動畫。
所以:
var animationID = $(this).find(".svg-animation svg").attr('id');
var playAnimation = svgAnimations.animationsArray[0].animationID;
playAnimation();
但在上述animationID代碼被逐字而不是使用由所述關於我們函數代替。
我認爲這是一個相當常見的JS問題。誰能幫忙?
您正在尋找'[]'運算符。 – Pointy
'object [animationID]'把變量放在方括號內,而不是點符號。 – bloodyKnuckles
你上面的「數組」被稱爲item,我沒有看到你在下面的任何地方引用'item'。這導致我懷疑這是否是一個命名問題。 – Dellirium