Javascript将图像从左向右移动随机数
Javascript Moving an Image left to right random number
我必须让两个图像从屏幕左侧开始,移动到右侧并停止。这就像一场比赛,谁先到右边谁就赢。我只是为这个生成了一个随机数,图像只向右移动一次。我不明白为什么他们只移动一次,也不知道我该如何让他们停在右边。
这是我的代码:
var myVar1 = setInterval(fly, 250);
function fly() {
var ranNum = Math.floor(Math.random()*2);
if(ranNum == 0){
document.getElementById("race").style.left = '25px';
} else if (ranNum == 1){
document.getElementById("race1").style.left = "25px";
}
}
body { background-image: url(images/stars.jpg); }
.img1 {
position: absolute;
bottom: 0px;
left: 0px;
}
.img2 {
position: absolute;
bottom: 200px;
left: 0px;
}
.img3 {
position: absolute;
top: 0px;
right: 0px;
}
<img src="images/tie.png" class="img1" id="race" alt="tie"></br>
<img src="images/xwing.png" class="img2" id="race1" alt="xwing">
<img src="images/death.png" class="img3" alt="dstar">
第三个图像(death.png,又名死亡之星),当它被点击时,它会改变颜色并开始"比赛",我会使用onClick方法,对吧?因此,一旦平局战斗机或x翼飞机到达右侧的"终点线",两个图像都会停止,因此我们将获胜。此外,如果x翼获胜,我将让dstar变为dstar爆炸。
您需要增加值才能使其移动。
var leftIncrement = parseInt(document.getElementById("race").style.left) + ranNum + "px";
document.getElementById("race").style.left = leftIncrement;
目前,您正在将其设置为每个间隔"25px"。
试试这个:
var els = [document.getElementById("race"), document.getElementById("race1")],
timer = setInterval(fly, 250);
function fly() {
var el = els[Math.floor(Math.random()*2)],
newPos = (parseInt(el.style.left) || 0) + 1;
el.style.left = newPos + 'px';
if(newPos == 25) {
clearInterval(timer);
el.classList.add('winner');
}
}
var els = [document.getElementById("race"), document.getElementById("race1")],
timer = setInterval(fly, 250);
function fly() {
var el = els[Math.floor(Math.random()*2)],
newPos = (parseInt(el.style.left) || 0) + 1;
el.style.left = newPos + 'px';
if(newPos == 25) {
clearInterval(timer);
el.classList.add('winner');
}
}
body { background-image: url(images/stars.jpg); }
.img1 {
position: absolute;
bottom: 0px;
left: 0px;
}
.img2 {
position: absolute;
bottom: 200px;
left: 0px;
}
.img3 {
position: absolute;
top: 0px;
right: 0px;
}
.winner {
outline: 3px solid #0f0;
}
<img src="images/tie.png" class="img1" id="race" alt="tie"></br>
<img src="images/xwing.png" class="img2" id="race1" alt="xwing">
<img src="images/death.png" class="img3" alt="dstar">
这是因为无论生成什么随机数,都会为您分配一个左样式值25px。
var left = document.getElementById("race").style.left;
left = left.replace('px','');
left += parseInt(left) + 25;
document.getElementById("race").style.left = left + "px";
未经测试但应该有效。
这适用于
var racers = [ document.getElementById("race"), document.getElementById("race1") ];
var interval = setInterval( fly, 250 );
function fly() {
var racer = racers[ Math.floor(Math.random() * racers.length) ];
var newPos = parseInt( racer.style.left || 0 ) + 25;
racer.style.left = newPos + "px";
if( (newPos + racer.clientWidth) >= window.innerWidth){
clearInterval( interval );
alert( "And the winner is " + racer.id );
}
}
给你JsFiddlehttp://jsfiddle.net/5poa7tnt/10/
询问您是否需要帮助来理解
编辑:看起来类似于Oriol的后思考
编辑2:比赛最漂亮的是步数为"1"而不是"25",间隔为"5"或"10"而不是250。。我不知道你想要的最终结果是什么
相关文章:
- 移除类(如果移动)
- JavaScript 中的符号传播右移和零填充右移之间的区别
- Twitter Bootstrap Carousel 在向左或向右滑动控制时不断向上移动
- 当用户将鼠标移到屏幕/图表上时,自动滚动将暂停.如果鼠标移动停止,自动滚动将再次恢复
- 如何使用javascript向右移动图片
- 意外的右移操作员行为
- 如何在jquery中从右、从左、从下移动css元素
- 移动|克隆元素并从原始位置移除
- jqPlot图形在缩放后向右移动
- 右移运算符 - Javascript
- JavaScript 零位左移和右移等效于 Python 中的
- 在画布上从左向右直线移动圆圈
- 从左到右动态移动元素进行选择
- 如何在PHP中执行正确的无符号右移
- 按位左移和右移计算在javascript
- 3 .js -如何从左到右反复移动一个球
- 无符号右移函数对负输入不起作用
- 动画图像向左和向右连续移动
- 操作符>>>(零填充右移)在Array.prototype.find (polyfill)
- 如何理解d3中的'零填充右移' (' >>> ').平分线的源代码