绝对位置;在不同的屏幕上获得不同的结果
position absolute; gets different results on different screens
在我的游戏中,如果汽车坠毁,推土机的运行间隔应该在jquery上的1700之后停止。然而,我的朋友告诉我,推土机不会停在每台计算机上的同一个地方。尽管每个相关元素的位置都是绝对的,并且每台计算机中处理的1700都是相同的。为什么?
$(document).ready(function () {
var jump = new Audio("jump.wav");
var bulldozer = new Audio("bulldozer.wav");
var warning = new Audio("warning.wav");
var fireworks = new Audio("fireworks.wav");
$('.restart').click(function () {
location.reload();
});
$('.homepage').click(function () {
window.location.href = 'index.html';
});
$(".textbox").focus();
setTimeout(areyouready, 2000);
function areyouready()
{
throwdice();
function throwdice()
{
var random1 = Math.floor(Math.random() * 150);
var random2 = Math.floor(Math.random() * 150);
$(".firstnumber").text(random1);
$(".secondnumber").text(random2);
}
var movingbulldozer;
movingbulldozer = setInterval(function () {
var bulldozerright = parseInt($(".bulldozer").css("right"))
if (bulldozerright < 1100) {
$(".bulldozer").css("right", "+=2");
}
else {
$(".bulldozer").css("right", "-=1500");
}
}, 5);
var winpoint;
winpoint = setInterval(function ()
{
var num1 = parseInt($(".firstnumber").html());
var num2 = parseInt($(".secondnumber").html());
var total = num1 + num2;
var entry = parseInt($(".textbox").val());
var cartop = parseInt($(".car2").css("top"))
if (entry == total && cartop == 121)
{
$(".car2").css("top", "-=150");
function gobacksoil() {
$(".car2").css("top", "+=150");
}
setTimeout(gobacksoil, 1000);
jump.play();
$(".textbox").val("");
throwdice();
var oldscore = parseInt($(".expertscoreboard").html());
var newscore = oldscore + 15;
$(".expertscoreboard").html(newscore);
if (newscore == 150)
{
clearInterval(movingbulldozer);
$('.bulldozer').hide();
$('.firstnumber').hide();
$('.secondnumber').hide();
$(".car2").css("top", "+=150");
$(".textbox").val("YOU WON THE GAME!");
fireworks.play();
$('.fireworks').fadeIn(3000);
$('.textbox').attr("disabled", true);
}
}
else if (entry == total && cartop != 121)
{
warning.play();
$(".textbox").val("");
}
}, 50);
var gameover;
gameover = setInterval(function () {
var bulldozerdistance = parseInt($(".bulldozer").css("right"))
var cartop = parseInt($(".car2").css("top"))
if (bulldozerdistance == 350 && cartop == 121)
{
$(".car2").addClass("crashedcar");
bulldozer.play();
$('.textbox').attr("disabled", true);
$('.textbox').val("game over");
endinggame = setTimeout(function ()
{
clearInterval(movingbulldozer);
}, 1700);
}
}, 1);
}
});
推土机停止不同位置有两个原因。
首先,您只检测到准确的位置(bulldozerdistance == 350
),在检查时不太可能如此。要解决此问题,您需要使用 bulldozerdistance <= 350
.
第二个是由第一个引起的。大多数情况下,推土机仅在间隔停止时停止。但是,实际上该间隔(1 毫秒)每 10 - 15 毫秒执行一次。间隔不准确,它们只能保证至少需要给定的时间,但根据浏览器(和机器)的活动,它们可能会更长。
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- JSONP请求返回结果,但也触发error_callback
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 将地理编码结果转换为php变量以发布到mysql数据库
- 绝对位置;在不同的屏幕上获得不同的结果
- 将5个函数的总值相加,在屏幕上打印结果
- 可以't获取排序项目的数组以在屏幕上显示结果
- 如何使用Javascript使Quicksort算法在屏幕上显示结果
- 获取屏幕分辨率并根据大小显示结果
- 基于屏幕分辨率的最大结果
- 图像搜索结果仅限于屏幕大小
- 如何在等待搜索结果显示时添加加载屏幕