javascript执行具有时间间隔的函数
javascript execute function with time interval
我有一个更改容器div内容的简单功能。容器<div>
中有一个<table>
,有两个<td>
s,javascript只需向左移动这个<table>
就可以了,但onclick
和我需要执行有时间间隔的移动函数。
<div onclick="move(this.children[0])" class="table_wrap">
<div class="table_scroll" style="left: 0px;">
<table cellpadding="0" cellspacing="5" width="1920px">
<tr>
<td style="background-color: red;">
a
</td>
<td style="background-color: blue;">
b
</td>
</tr>
</table>
</div>
</div>
<script language="javascript">
function move(elem) {
var left = 0
function frame() {
left -= 5; // update parameters
elem.style.left = left + 'px' // show frame
if (left == -965) // check finish condition
clearInterval(id)
}
var id = setInterval(frame, 1) // draw every 10ms
}
</script>
和CSS:
<style type="text/css">
.table_wrap{
position:relative;
overflow:hidden;
width: 967px;
height: 250px;
left: -2px;
top: 5px;
}
.table_wrap .table_scroll{
position: absolute;
text-align:center;
white-space:nowrap;
}
</style>
我尝试使用setInterval
,但失败了。
http://jsfiddle.net/hqztm2dt/1/这是JSfiddle,只需点击红线。。提前感谢您的关注!
如果您需要在间隔中移动它,请参阅以下内容:http://jsfiddle.net/gsddsxgy/2/(此处时间间隔为3ms)
html:
<div class="table_wrap">
<div id='move' class="table_scroll" style="left: 0px;">
<table cellpadding="0" cellspacing="5" width="1920px">
<tr>
<td style="background-color: red;">
a
</td>
<td style="background-color: blue;">
b
</td>
</tr>
</table>
</div>
</div>
JS:
setInterval(function(){
var elem=document.getElementById('move');
var left = 0
function frame() {
left -= 5; // update parameters
elem.style.left = left + 'px' // show frame
if (left == -965) // check finish condition
clearInterval(id)
}
var id = setInterval(frame, 1) // draw every 10ms
}, 3000);
如果您需要在单击时移动div,但经过一段时间后,请参阅这http://jsfiddle.net/gsddsxgy/
代码:
function move(elem) {
setTimeout(function(){
var left = 0
function frame() {
left -= 5; // update parameters
elem.style.left = left + 'px' // show frame
if (left == -965) // check finish condition
clearInterval(id)
}
var id = setInterval(frame, 1) // draw every 10ms
}, 1000);
}
jsFiddle中代码的问题是在尝试调用move函数时没有定义它-如果使用addEventListener,则可以仅使用javascript而不使用onClick属性将该方法绑定到click事件。使用您的代码:
var elem = document.getElementById('wrapper');
elem.addEventListener('click', move);
function move() {
var left = 0
function frame() {
left -= 5; // update parameters
elem.style.left = left + 'px' // show frame
if (left == -965) // check finish condition
clearInterval(id)
}
var id = setInterval(frame, 1) // draw every 10ms
}
JS小提琴-http://jsfiddle.net/b1q7poj4/2/
相关文章:
- Jquery函数在错误的时间提交
- 在指定时间后多次调用Javascript中的函数
- 从角度日期函数中删除时间
- 如何在此函数中添加处理时间
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 我需要在每5秒内调用一个函数,并重置持续时间
- javascript函数将当前时间显示为html选择标记的预选值
- Javascript时间函数问题
- setTimeout() 函数在超时持续时间之前调用
- 一段时间后调用函数,但只调用一次
- jQuery setTimeout ajax递归函数在即时消息程序中短时间后抛出错误
- javascript函数停车时间
- 如何在特定时间从javascript调用C#中的函数
- JS'加载'函数在同一时间调用
- Jquery-append函数花费了太多时间
- setTimeout()在其设置时间之前连续调用回调函数
- 如何从Javascript中的Date()函数中获取斯里兰卡时间缩写
- 70%的时间运行JavaScript函数,从函数数组中随机选择
- 查询日期时间选择器未在另一个函数调用中获取日期
- 我的jquery函数时间格式问题