【发布时间】:2015-01-28 16:09:31
【问题描述】:
抱歉,我还在学习 JavaScript,阅读 W3Cschools javascript 和 Jquery,但他们没有教很多东西。
我现在正在学习动画,我如何自动启动它而不是等待某人点击(事件监听器),我试图将它变成一个函数,但我一定做错了,还有 1 个什么(Idx) 的意思是,我理解 (id) 是 Html ID 元素但不确定 Idx,在谷歌上不容易找到。要阅读,事件侦听器从底部的第 5 行开始,洗牌卡在顶部的第 6 行(不确定是否有帮助),原始代码位于此处http://www.the-art-of-web.com/javascript/css-animation/ 感谢您的帮助。 问候。威廉。
var cardClick = function(id)
{
if(started) {
showCard(id);
} else {
// shuffle and deal cards
card_value.sort(function() { return Math.round(Math.random()) - 0.5; });
for(i=0; i < 16; i++) {
(function(idx) {
setTimeout(function() { moveToPlace(idx); }, idx * 100);
})(i);
}
started = true;
}
};
// initialise
var stage = document.getElementById(targetId);
var felt = document.createElement("div");
felt.id = "felt";
stage.appendChild(felt);
// template for card
var card = document.createElement("div");
card.innerHTML = "<img src=\"/images/cards/back.png\">";
for(var i=0; i < 16; i++) {
var newCard = card.cloneNode(true);
newCard.fromtop = 15 + 120 * Math.floor(i/4);
newCard.fromleft = 70 + 100 * (i%4);
(function(idx) {
newCard.addEventListener("click", function() { cardClick(idx); }, false);
})(i);
felt.appendChild(newCard);
cards.push(newCard);
【问题讨论】:
-
您可以通过简单地暗示单击来调用单击事件 ..
newcard.click();.. 也可以在这里查看。 stackoverflow.com/questions/6367339/… -
为什么不做类似
onLoad=cardClick()的事情? -
idx只是变量i的名称。它被传递给for循环中的自执行函数 -
w3cschools 总是会让你失望,阅读 MDN。 developer.mozilla.org/en-US/docs/Web/JavaScript
标签: javascript animation