我有一个Fx.Slide实例,它通过ajax加载内容,然后滑动打开元素。它正确地等待AJAX调用返回(并填充其目标元素的内容)然后滑动打开,但因为我没有传输图像数据,只有url,当Fx.Slide实例时,用户的浏览器仍在下载图像被切换了。
因此,当测量元素时,不会考虑图像的大小,也不会向远处滑开。
.delay()
会起作用,但这是一种黑客攻击方法。
感谢lorenzo-s,以下解决方案非常有效:
var container = document.id('something');
new Request({
url: '/path/to/listener',
onSuccess: function(imageUrl) {
Asset.image(imgSrc, {
title: 'Something',
onLoad: function() {
// .. trigger the Fx.Slide instance here
}
}).inject(container);
}
});
答案 0 :(得分:2)
您应该使用Mootools More中的Asset.image()
方法。
该方法预加载图像并返回img元素。您可以使用onLoad
属性(在第二个参数对象上),一旦图像“准备就绪”,将调用该属性。
Asset.image('http://url.to/your/image.jpg', {
onLoad: function() {
alert('Image ready.');
}
});
此处更新了示例: http://jsfiddle.net/6Lpeu/3/