我为其中一个平台创建了这个小小的交互 - http://jsfiddle.net/S79qp/426/
除IE8外,它在所有浏览器中都能正常工作.当我运行控制台时,似乎是这部分它有问题......
Array.prototype.forEach.call(l, function(item) {
a.push(jQuery(item).text());
});
Run Code Online (Sandbox Code Playgroud)
有人可以给我看一个IE8友好的替代品,所以我可以使它兼容所需的版本?
我正在创造一种新的"打鼹鼠"风格的游戏,孩子们必须根据问题打出正确的数字.到目前为止它真的很顺利,我有一个计时器,计算正确和错误的答案,当游戏开始时,我有一些称为"字符"的div,它们在设定的时间随机出现在容器中.
我遇到的问题是,因为它是完全随机的,有时"字符"看起来彼此重叠.有没有办法组织它们,以便它们出现在容器中的设置位置,并且在它们出现时不会重叠.
这里我有代码将div映射到容器..
function randomFromTo(from, to) {
return Math.floor(Math.random() * (to - from + 1) + from);
}
function scramble() {
var children = $('#container').children();
var randomId = randomFromTo(1, children.length);
moveRandom('char' + randomId);
}
function moveRandom(id) {
var cPos = $('#container').offset();
var cHeight = $('#container').height();
var cWidth = $('#container').width();
var pad = parseInt($('#container').css('padding-top').replace('px', ''));
var bHeight = $('#' + id).height();
var bWidth = $('#' + id).width();
maxY = cPos.top + cHeight - bHeight - pad;
maxX = cPos.left + cWidth …Run Code Online (Sandbox Code Playgroud) 我正在创造一种新的"打鼹鼠"风格的游戏,孩子们必须根据问题打出正确的数字.到目前为止它真的很顺利,我有一个计时器,计算正确和错误的答案,当游戏开始时,我有一些称为"字符"的div,它们在设定的时间随机出现在容器中.
我已经拿走了"播放"按钮并用"简单","中等"和"硬"取而代之.单击模式时,我希望速度发生变化.三个按钮共享"game_settings"类
这是处理动画的代码
function randomFromTo(from, to) {
return Math.floor(Math.random() * (to - from + 1) + from);
}
function scramble() {
var children = $('#container').children();
var randomId = randomFromTo(1, children.length);
moveRandom("char" + randomId);
}
var currentMoving = [];
function moveRandom(id) {
// If this one's already animating, skip it
if ($.inArray(id, currentMoving) !== -1) {
return;
}
// Mark this one as animating
currentMoving.push(id);
var cPos = $('#container').offset();
var cHeight = $('#container').height();
var cWidth = $('#container').width();
var bWidth = $('#' …Run Code Online (Sandbox Code Playgroud) 在我的游戏中,我有一个填充了单词的网格.要拼写单词,用户必须单击名为"拖动"的一侧的字母.单击一个字母时,它会动画到网格上的位置.
我遇到的问题是用户可以快速点击字母,这会使程序崩溃.为了解决这个问题,我想禁用点击事件,直到动画完成.
在过去,我之前使用过一个setTimeOut函数,但它不是一个可靠的方法,因为时间都取决于浏览器的速度.
这是点击事件:
$('.drag').on('click', function (e) {
e.preventDefault();
var target = $('.highlight-problem .drop-box:not(.occupied):first');
var targetPos = target.parents('td').position();
console.log(targetPos);
var currentPos = $(this).offset();
var b = $(this);
if (target.length) {
target.addClass("occupied");
$(".occupied").parent(".flip-wrapper").addClass("flipped");
var clonedObject = b.clone()
if (b.data("letter") == target.parents('td').data("letter")) {
clonedObject.addClass("right-letter");
target.addClass('right-letter');
setTimeout(function () {
hitSound.play();
}, 550);
} else {
clonedObject.addClass("wrong-letter");
target.addClass('wrong-letter');
setTimeout(function () {
missSound.play();
}, 550);
}
clonedObject.appendTo("table").css({
position: "absolute",
top: currentPos.top,
left: currentPos.left
}).stop().animate({
top: targetPos.top,
left: targetPos.left
}, "slow", function () { …Run Code Online (Sandbox Code Playgroud) 在我创建的拼写游戏中,有一个填充了单词的网格.游戏的目的是通过单击侧面的字母来拼写单词,这些字母可以激活到网格中的空白区域.如果要拼写单词,则会突出显示单词,因此用户可以查看下一步的位置.游戏的目的是在网格中拼写所需数量的单词以完成游戏.我通常将它设置为2,但刚刚将其更改为3,并且在我拼写第二个单词后程序仍然断开.
if (score.right == 3) {
................
................
}
Run Code Online (Sandbox Code Playgroud)
通常当你正确拼写单词时,我会使用"click.trigger"函数移动到网格中的下一个突出显示的单词.在2个正确的程序之后,程序要么不进入下一个程序,要么返回到最后一个程序,并且不允许您单击字母.
setTimeout(function() {
jQuery('.next-question').trigger('click');
}, 1500);
Run Code Online (Sandbox Code Playgroud)
我试图通过破发点但似乎无法找到问题.有人可以帮助我让它再次运作并告诉我哪里出错了吗?
在我的游戏中,没有提示图片或提示声音,所以要找到你必须使用控制台的突出显示的单词.尝试回答两个然后它会崩溃.
这是一个破碎的小提琴:http://jsfiddle.net/smilburn/Dxxmh/101/
这是一个很好的前一个工作得很好:http://jsfiddle.net/smilburn/Dxxmh/100/(某些类名可能已更改)
编辑**
我有这个点击事件
$('.next-question').click(function () {
$('td').removeClass('highlight-problem');
var r = rndWord;
while (r == rndWord) {
rndWord = Math.floor(Math.random() * (listOfWords.length));
}
$('td[data-word="' + listOfWords[rndWord].name + '"]').addClass('highlight-problem');
$('td[data-word=' + word + ']').removeClass('wrong-letter').removeClass('wrong-word').removeClass('right-letter');
var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('right-word');
if (spellSpace) {
$('.next-question').trigger('click');
} else {
$("#hintSound").attr('src', listOfWords[rndWord].audio);
hintSound.play();
$("#hintPic").attr('src', listOfWords[rndWord].pic);
$('#hintPic').show();
$('#hintPicTitle').attr('title', listOfWords[rndWord].hint);
$('#hintPicTitle').show();
}
});
Run Code Online (Sandbox Code Playgroud)
在控制台中进行调试时,它表示此时too much recursion它处于某种无限循环状态.我认为这是因为声明中的trigger("click")事件if,因为我在网上看到了类似的东西.
基本上,我想说,如果给定的单词有类,right-word那么继续(因此触发),否则......
还有另一种方法来写它不会崩溃吗?
这是一个小提琴:http://jsfiddle.net/Dxxmh/112/
说明:单击右侧的字母拼写网格中突出显示的区域(帮助您拼写单词的图像不适用于小提琴,因此您必须使用控制台拼写它们,通过查找td)
我有一个笑话列表,我想在一个盒子里显示.当页面加载时,我想在框中随机显示一个.然后,当我单击该框时,我希望它再次将值更改为列表中的另一个随机值.
目前我无法让它工作,无法解决我出错的地方.我的HTML如下:
<input class="box" type="button" value"" />
<ul>
<li>How much do pirates pay to get their ear pierced? </br> A buck anear!</li>
<li>How do pirates talk to one another? </br> Aye to aye!</li>
<li>What did the sea say to the pirate captain? </br> Nothing, it justwaved!</li>
<li>What is a pirates favourite shop? </br> Ar-gos!</li>
<li>When is it the best time for a pirate to buy a ship? </br> Whenit is on sail!</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
该脚本是:
$(document).ready(function () {
var list = …Run Code Online (Sandbox Code Playgroud)