大家好!我对JS / JQuery不是很了解,所以我需要一些帮助...
我有一个垂直和水平居中的页面。在这个页面中,我有一系列同心圆,中间有一个按钮。
我想要完成的是:
所有圆圈都是单独的DIV元素,永远不会相互重叠。
如果您有解决方案,请随时查看代码并进行编辑。
谢谢,任何有帮助的人!
屏幕截图:http://cl.ly/6CJR
请在Webkit中查看!
答案 0 :(得分:1)
使用jQuery编写setTimeout
调用可能更简洁,但这很有效。
$(function() {
var $circles = $('div.wrap4 > div:not(#box)').css('opacity', 0),
numCircles = $circles.length,
duration = 200,
fadeIns = [],
fadeOuts = [];
function getNextCallback(s, o) {
return function() {
$(s).animate({opacity: o}, duration);
};
}
function stopFadeIn() {
var i = fadeIns.length;
while (i--) {
clearTimeout(fadeIns[i]);
}
fadeIns = [];
$circles.stop();
}
function stopFadeOut() {
var i = fadeOuts.length;
while (i--) {
clearTimeout(fadeOuts[i]);
}
fadeOuts = [];
$circles.stop();
}
$('#box').hover(function() {
// button mouseover
var start = numCircles,
i = 0;
stopFadeOut();
while (start--) {
fadeIns.push(setTimeout(getNextCallback('#cc' + start, 1), duration * i++));
}
}, function() {
// button mouseout
var i, end = numCircles;
stopFadeIn();
for (i = 0; i < end; i++) {
fadeOuts.push(setTimeout(getNextCallback('#cc' + i, 0), duration * i));
}
});
});
演示:http://jsfiddle.net/mattball/xkLgf/
答案 1 :(得分:0)
查看fadeIn()文档。您可以传递一个附加参数,该参数称为动画完成功能。然后,您可以按以下方式链接效果:
$('#circle1').fadeIn(500, function() {
$('#circle2').fadeIn(500, function () {
// more fadeIn()s ...
});
});