Javascript动画问题
Javascript Animation trouble
我的代码是一个网站,当你按下移动按钮,两个方块将移动,如果你按下改变颜色按钮,两个方块将交替的颜色。这些形状同时做这些动作。然而,只有一个方块这样做,而另一个什么也不做……请帮忙吗?
<!DOCTYPE html>
<html>
<style>
#container {
width: 400px;
height: 400px;
position: relative;
background: CadetBlue;
}
div#animate {
width: 50px;
height: 50px;
position: absolute;
background-color: Maroon;
}
</style>
<style>
#containertwo {
width: 400px;
height: 400px;
position: relative;
background: CadetBlue;
}
div#animatetwo {
width: 50px;
height: 50px;
position: absolute;
left: 350px;
top: 0px;
background-color: Olive;
}
</style>
<body>
<p>
<button onClick="myMove()">Movement</button>
</p>
<p>
<button onClick="button_click()">Change Colour</button>
</p>
<div id ="container">
<div id ="animate"></div>
<div id ="animatetwo"></div>
</div>
<div id="box" onClick="button_click();"></div>
<script>
var colors = ["Maroon","Olive"];
function button_click() {
var box = document.getElementById("animate");
var background_color = box.style.backgroundColor;
var i = colors.indexOf(background_color);
if (i === colors.length-1) {
i = -1;
}
animate.style.backgroundColor = colors[i+1];
}
</script>
<div id="box" onClick="myMove();"></div>
<script>
function myMove() {
var elem = document.getElementById("animate");
var pos = 0;
var id = setInterval(frame, 1);
function frame() {
if (pos == 350) {
clearInterval(id);
} else {
pos++;
elem.style.top = pos + 'px';
elem.style.left = pos + 'px';
}
}
}
</script>
<div id="box" onClick="button_click();"></div>
<script>
var colorstwo = ["Maroon","Olive"];
function button_clicktwo() {
var box = document.getElementById("animatetwo");
var background_color = box.style.backgroundColor;
var i = colorstwo.indexOf(background_color);
if (i === colorstwo.length-1) {
i = -1;
}
animatetwo.style.backgroundColor = colorstwo[i+1];
}
</script>
<div id="box" onClick="myMove();"></div>
<script>
function myMovetwo() {
var elem = document.getElementById("animatetwo");
var pos = 0;
var id = setInterval(frame, 1);
function frame() {
if (pos == 350) {
clearInterval(id);
} else {
pos++;
elem.style.top = pos + 'px';
elem.style.left = pos + 'px';
}
}
}
</script>
</body>
</html>
Ok…我先谈谈你遇到的问题,然后再给你一些建议。
1)首先,点击"移动"按钮,你只调用myMove()
函数,它只负责移动animated
div,当你选择它:
var elem = document.getElementById("animate");
所以如果你想同时移动两个,确保你激活了正确的函数,因为我想象你想同时调用myMovetwo()
也许你可以这样做:
function move() {
myMove();
myMovetwo();
}
这样调用move()
,两个调用都将运行。
2)现在关于你的代码,你应该真正考虑隔离页面的不同方面,我的意思是隔离CSS, HTML和JavaScript,你可以使用<link>
标签导入你的样式和<script src="path"></script>
标签来包含你的JavaScript代码。
另一个建议是从你的html标签中删除onclick
,并从javascript代码中获得点击事件。
有一些很好的资源来学习这些基本概念,也许codecademy对初学者来说是一个很好的资源https://www.codecademy.com/courses/html-javascript-css/0/1
干杯!
相关文章:
- 剑道网格jQuery动画()问题
- 在EaselJS中设置精灵表动画时出现问题
- 关于使用Animate.css向和项添加和删除动画类的问题
- Chart.js 2.1.2条形图动画问题
- 动画、计时和运行循环等问题
- 如何在 jquery 中克服此问题以获得动画悬停效果
- jQuery 动画处理最大宽度溢出问题
- HTML5 画布动画问题
- 旋转木马动画事件问题
- 使用JSTween的动画气泡问题
- SVG模式动画和背景淡入问题
- 循环播放Raphael动画,没有fps问题
- Three.js-渲染问题-动画正在动摇
- Chrome动画CSS3三维立方体与悬停状态问题
- CSS3 动画和 JavaScript 类切换后的动画出现问题
- 轮播猫头鹰 2:字幕动画时遇到问题
- jQuery将问题动画化-动态选择方向
- jQuery幻灯片和停止问题:动画元素随着鼠标的快速移动而冻结
- jQuery,CSS问题-动画
- CSS Animation -play-state问题:动画恢复时跳转回初始帧