如何让JS函数自行执行
How to get a JS function to execute itself
我有一个背景图像(宽度=2000px,高度=400px)位于宽度和高度等于400px的div后面。我的图像被分成5个块,宽度和高度都等于400px。我希望每次调用函数来模拟GIF图像时,我的图像偏移400px。
var imageWidth = $("#imageScroll").width();
console.log(imageWidth);
var timer = setInterval(function(){ shiftImage() }, 250);
function shiftImage(){
$("#imageScroll").mouseover (function(){
$("#imageScroll").css({"background-position-x": (imageWidth)});
});
};
});
这是我的jQuery代码,我尝试过很多不同的代码,但都失败了。imageScroll是我希望图像通过的div的ID。
您必须定义图像的css,以便它在x轴上重复自己。
<style>
#imageScroll{
height: 400px;
width: 500px;
background-image: url('./background.jpg');
background-repeat: repeat-x;
}
</style>
然后,在页面底部,或者在body onload中,您应该执行以下指令。
intervalFunc = setInterval(shiftImage, 250);
function shiftImage(){
var currentBackgroundX = $('#imageScroll').css('background-position-x');
split = currentBackgroundX.split("%");
currentBackgroundX = split[0];
currentBackgroundX = parseInt(currentBackgroundX);
$('#imageScroll').css({"background-position-x": (currentBackgroundX + 25) + '%'});
}
实际上,我没有对定位部分给出太多,因为这是一个完全不同的主题。但我想做的是,每250毫秒将背景位置x改变25%。您可以更改shiftImage函数的内部工作方式。
如果你想在任何时候停止动画,只需运行
clearInterval(intervalFunc);
希望这能帮助
编辑:jsFiddle
编辑2:编辑小提琴链接
编辑3:编辑小提琴链接
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- javascript自执行函数-不同的语法
- JavaScript:只有当数组中的所有项都为true时才执行函数
- iFrame url更改时执行函数
- 为什么AngularJS在每个摘要循环上都执行函数
- 如何使用setInterval执行函数
- 当*ngFor以角度2结束时执行函数
- Ajax调用完成后如何执行函数
- 在显示引导弹出窗口之前执行函数
- 从自执行函数返回函数的Javascript性能命中率
- 在操作完成时执行函数
- jquery/js中的自执行函数
- 如何仅在完成对gap.client.youtube的请求.execute后执行函数
- 构造函数函数中的自执行函数的OO上下文/范围
- Javascript未使用=运算符执行函数
- AngularJS:如何按照预定义的顺序执行函数
- 在不使用隔离作用域的情况下执行函数的角度指令
- 如何在页面加载后执行函数是在 AngularJS 中完成的
- 完成页面加载后执行函数
- 如何在完成完全执行函数后触发循环