动画不会在javascript中绘制
Animation does not get drawn in javascript?
我知道jQuery中有一个.animate()函数,但是我想尝试编写自己的函数!
我得到了这个脚本:
var ball = $("#ball");
var p = $("#ball").position();
for(;;){
$("#ball").css("left", ++p.left);
if ( p.left == 400 ){
break;
}
}
具有以下元素:
#board { height:500px; width:500px; background-color: gray; position:relative;}
#ball{ height: 50px; width:50px; background-color: red; position:absolute;}
<div id="board">
<div id="ball"></div>
</div>
现在,当我打开浏览器时,我想看到的是红色的小框从左到右运行并停在 400。
但是,当我加载页面时,该框已经是 400,因此它跳过了动画。
本质上,我需要浏览器绘制左坐标的每个交互。
如何强制浏览器重新绘制?
刚刚使用了setInterval,它可以工作。
var ball = $("#ball");
var p = $("#ball").position();
var i = 1000;
for(;;){
//setInterval(myFunction, i);
setTimeout(myFunction, i);
i+= 100;
if ( i> 10000 ){
break;
}
}
function myFunction(){
$("#ball").css("left", ++p.left);
}
这是一段肮脏的代码,所以如果你想使用它,请优化它。
更新:我的意思是使用 setTimeout 而不是 setInterval
浏览器在 JS 执行完成之前不会重绘页面。您需要使用 setTimeout()
(或 requestAnimationFrame()) 来绘制不同的帧。
为您发布了一个例子,希望对您有所帮助。
http://jsfiddle.net/ymutlu/J2cHn/1/
var ball = $("#ball");
var p = $("#ball").position();
//$("#ball").css("left", 10+p.left);
function moveBallDest(){
var p = $("#ball").position();
$("#ball").css("left", 10+p.left);
if ( p.left >= 400 ){
return;
}else{
setTimeout(moveBallDest,1000);
}
}
setTimeout(moveBallDest,1000);
试试这个-
<style>
#board { height:500px; width:500px; background-color: gray; position:relative;}
#ball{ height: 50px; width:50px; background-color: red; position:absolute;}
</style>
<script>
$(document).ready(function(){
$("#ball").animate({left:"400px"},"slow");
});
</script>
<div id="board">
<div id="ball"></div>
</div>
它会起作用。
相关文章:
- 有没有一个javascript图形绘制库可以进行气球树布局
- 绘制(重新加载)具有cors=“”的图像;匿名的“;在画布上(javascript)
- 如何使用Javascript在画布上绘制
- 用d3和numericjs在javascript中绘制错误椭圆
- Javascript:延迟在html5画布上循环绘制
- 谷歌地图API在Javascript中,绘制圆的半径
- Javascript和Canvas绘制中间有孔的圆
- Javascript绘制画布内存泄漏
- 我可以将javascript绘制函数更改为图像吗
- 如何在重新绘制画布时防止形状的痕迹-Javascript
- 如何在javascript中在图像上绘制图像(没有CSS和HTML)
- 用于绘制工作流图的JavaScript框架
- 在画布上绘制不透明度(行中的点)javascript
- 如何在不使用外部库的情况下使用 JavaScript 绘制折线图
- 我需要最快、最简单的方法来在 Javascript 中绘制数据
- 精灵不在画布上绘制(Javascript)
- 图片不是第一次绘制javascript
- 用于分析和绘制Javascript函数之间依赖关系的工具
- Django不能读取CSV文件来绘制javascript和HTML模板中的highchart
- 如何绘制javascript数组到jqplot