我正在使用mootools 1.4.1并且我正在尝试获取一个div,它在屏幕的宽度上“完成”以触发另一个函数。然而,补间继续射击,我不相信它正在发射我想要它的功能。
代码如下:
$('photo-loading_amt').set('tween', {duration: '1000ms',
link: 'cancel',
transition: 'linear',
property: 'width',
onComplete: function() {
var photoContainers = $$('.photo-container')
if (photoNum != photoContainers.length) {
nextPhoto(photoNum.toInt() + 1);
}
else {
nextPhoto(1);
}
}
});
您可能会获得任何帮助。
@Dimitar Christoff,这是nextPhoto功能的代码:
function nextPhoto(photoNum) {
resetTimeline();
var photoContainers = new Array();
photoContainers = $$('.photo-container');
var photoFx = new Fx.Tween(photoContainers[photoNum.toInt() - 1], {
duration: 'normal',
transition: Fx.Transitions.Sine.easeOut,
property: 'opacity',
onComplete: function() {
photoContainers[photoNum.toInt() - 1].setStyle('visibility', 'hidden');
photoContainers[photoNum.toInt() - 1].setStyle('opacity', 1);
if (photoNum == photoContainers.length) {
photoContainers[0].setStyle('z-index', photoContainers.length);
}
}
});
if (photoNum == photoContainers.length) {
photoContainers[0].setStyle('z-index', 0);
}
photoFx.tween(1, 0);
//alert("photoNum = " + photoNum + "\n" + "photoContainers.length = " + photoContainers.length);
if (photoNum == photoContainers.length) {
photoContainers[0].setStyle('visibility', 'visible');
}
else {
photoContainers[photoNum.toInt()].setStyle('visibility', 'visible');
//loadingPhotos(photoNum.toInt() + 1);
}
// hard reset the loadingPhotos function
} // FUNCTION nextPhoto的结尾
答案 0 :(得分:0)
由于我没有在代码中看到明显的循环,我怀疑其效果是由
引起的link: 'cancel'
在你的第一个代码块中。根据Moo文档,这将:
'取消' - 在效果运行时启动的任何调用都将优先于当前正在运行的转换。新转换将立即开始,取消当前正在运行的转换。
所以这可能会打乱你的青少年。但是,你可能故意添加了这个。我会尝试在第一次和第二次补间设置中将其更改为chain
或ignore
,以查看最佳组合。
如果这不能解决问题,也许您可以发布更多代码。例如,我没有看到resetTimeline
函数的代码。也许你的代码卡在这里。