Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在Firefox v8-v11中未正确加载图像_Javascript_Css_Firefox - Fatal编程技术网

Javascript在Firefox v8-v11中未正确加载图像

Javascript在Firefox v8-v11中未正确加载图像,javascript,css,firefox,Javascript,Css,Firefox,我正在连接一个摄影网站,在FF8到FF10中,我的行为异常 当我点击网站上的缩略图图像时,每隔一段时间,显示图像就会在缩略图后面加载,并且页面下方太远(几乎超出网站) 我已经在很多其他浏览器中测试过了,我只能在FireFox中重现它。它在FF或OSX中更容易复制,但有人告诉我在FF for Windows7中也会发生(但不太频繁) 这是我目前的测试 操作系统-----------浏览器-----------状态 Win7------IE 9------ Win7-----Chrome 17---

我正在连接一个摄影网站,在FF8到FF10中,我的行为异常

当我点击网站上的缩略图图像时,每隔一段时间,显示图像就会在缩略图后面加载,并且页面下方太远(几乎超出网站)

我已经在很多其他浏览器中测试过了,我只能在FireFox中重现它。它在FF或OSX中更容易复制,但有人告诉我在FF for Windows7中也会发生(但不太频繁)

这是我目前的测试

操作系统-----------浏览器-----------状态

Win7------IE 9------
Win7-----Chrome 17-----
Win7---FireFox 10---
Win7---FireFox 11---
操作系统X-----Chrome 17-----
OSX------Safari 5------
OS X------FireFox 8------
OS X------FireFox 11------

这是中转站

这是问题的截图

问题是,这是如此不稳定,我不知道从哪里开始寻找问题

下面是一些相关的代码片段

Javascript

function centerMe(img、show、container){
var img$=$(img);
容器=容器| | img$.parent();
var deltaW=Math.round((container.width()-img.width)/2);
var deltaH=Math.round((container.height()-img.height)/2);
img$.css({top:deltaH,left:deltaW});
如果(显示){
img$.css(“可见性”、“可见”);
}
}
$(文档).ready(函数(){
var-imgs=[];
$('a.thumb')。每个(函数(){
var img=新图像();
img.src=this.href;
img.推力(img);
})。单击(函数(){
变量容器=$(“#图库>div”);
var oldImg=container.find(“img”);
var img=新图像();
img.src=this.href;
var newImg=$(img.hide();
容器追加(img);
centerMe(img、假、容器);
oldImg.stop(true).fadeOut(500,函数(){
$(this.remove();
});
newImg.fadeIn(500);
返回false;
});
});​
样式表

#内容
{
位置:相对位置;
宽度:1160px;
}
#画廊
{
位置:绝对位置;
宽度:1160px;
}
#画廊>部门
{
位置:相对位置;
宽度:800px;
高度:600px;
文本对齐:居中;
垂直对齐:中间对齐;
}
#画廊>部门>图片组
{
位置:绝对位置;
}
/*画廊导航*/
#画廊>ul
{
位置:绝对位置;
显示:内联块;
保证金:0;
填充:0;
列表样式类型:无;
垂直对齐:顶部;
宽度:320px;
顶部:0;右侧:0;
}
#画廊>ul>li
{
列表样式类型:无;
显示:内联块;
垂直对齐:顶部;
字母间距:正常;
垫面:3件;
}
HTML



我意识到这个问题有点长,但如果有人能提供一些关于为什么会发生这种情况的建议,我很想听听你的想法。

在我看来,Firefox似乎没有等待你的文档加载,因此事件处理程序没有正确连接

当我查看Firefox中的实际代码时,我看到:

$(document).load()
何时应该:

$(document).ready()
site.js
的末尾附近


此外,这段代码似乎被最小化了(删除了所有缩进,并重命名了许多变量)。我建议在最小化之前调试应用程序,因为最小化它会使调试变得更加困难。当它在任何地方都正常工作时,您可以将其最小化并再次测试。

在我看来,Firefox似乎没有等待您的文档加载,因此事件处理程序没有正确连接

当我查看Firefox中的实际代码时,我看到:

$(document).load()
何时应该:

$(document).ready()
site.js
的末尾附近


此外,这段代码似乎被最小化了(删除了所有缩进,并重命名了许多变量)。我建议在最小化之前调试应用程序,因为最小化它会使调试变得更加困难。当它在任何地方都正常工作时,您可以将其最小化并再次测试。

您正在图像上设置
.src
,并立即尝试读取其尺寸(在
centerMe
中)。根据Firefox实现的当前HTML5规范文本,维度从src集异步更新。从图像的加载事件中执行与大小相关的操作应该可以


该规范中提出了一个问题,即该规范似乎与web不兼容,并且有一些Firefox开发版本的行为发生了更改,以匹配此处的其他浏览器。可能值得在您的站点上测试它们,看看它们是否解决了问题。

您正在图像上设置
.src
,并立即尝试读取其尺寸(在
centerMe
中)。根据Firefox实现的当前HTML5规范文本,维度从src集异步更新。从图像的加载事件中执行与大小相关的操作应该可以


该规范中提出了一个问题,即该规范似乎与web不兼容,并且有一些Firefox开发版本的行为发生了更改,以匹配此处的其他浏览器。可能值得在您的站点上测试它们,看看它们是否解决了问题。

如果在
$(文档)中进行初始化,则会发生什么情况。load()
处理程序而不是“ready”处理程序?“加载”事件在所有图像(等)加载完毕后才会触发。@将
.ready
点式更改为
.load
会导致图像不交换。他们只是在一辆汽车里装了些东西