所以我在我的网站上有一个鸟舍编辑器的实例,它从filepicker中提取图像,然后重新提交它们。我遇到的问题是,当我加载图像时,它最初有我加载的缩略图,然后屏幕变为空白......直到我调整屏幕大小并且图像正常显示。
这是它的样子,请注意底部的图像尺寸。它们从已经加载的缩略图变为空白图像,显示正确的尺寸,直到我稍微改变窗口大小。
正在加载时,缩略图的尺寸位于底部 加载后,在底部校正尺寸 稍微改变窗口尺寸后,会出现图像
这是我的初始化代码:
function initEditor( apiKey ){
var tools = ['enhance', 'orientation', 'focus', 'resize', 'crop', 'effects'];
var featherEditor = new Aviary.Feather({
apiKey: apiKey,
apiVersion: 3,
displayImageSize: true,
tools: tools,
maxSize: 800,
theme: 'minimum',
onSave: function(image, newUrl){
//onSave function, sends to external filePicker source
},
onError: function(errorObj){
console.log(errorObj);
},
onLoad: function(){
//load only if there is an img
if (typeof img !== 'undefined'){
openEditor(img, src, featherEditor);
}
}
});
return featherEditor;
}
开幕代码:
image = "img-id_image_relations-0-image"
src = "https://www.filepicker.io/api/file/mX42P6fLRS6YDP58moIH"
function openEditor(image, src, editor){
editor.launch({
image: image,
url: src
});
//return false;
}
我尝试过的事情:
在打开之前将图像加载到div中,
简化羽毛初始化,
在面向外部的服务器和localhost上进行测试,
当我在jsFiddle上测试它时,有什么臭味它完美无缺。 http://jsfiddle.net/TD4Ud/
答案 0 :(得分:1)
它非常脏,但我发现了一个临时解决方案,即在图像加载时触发窗口调整大小事件。我希望有更好的答案,但这将在过渡期间发挥作用。
在初始化中将其添加为onReady事件:
onReady: function(){
//this is an abomination but it works
window.dispatchEvent(new Event('resize'));
}