jQuery ready函数仅在刷新时加载

时间:2013-05-28 17:54:38

标签: jquery image fadein document-ready

我正在尝试在页面加载时将所有图像都显示到fadeIn。但是,这只会在刷新页面时发生。当我点击指向另一个页面的链接时,它什么也没做。这是我的代码:

custom.js

jQuery(document).ready( function () {
    jQuery('img').hide().fadeIn(300);
 });

head.php

<script src="/js/custom.js"></script>

我已经检查了this threadthis one,但他们都有与我相同的解决方案。我从this thread得到了当前的代码。

2 个答案:

答案 0 :(得分:0)

如果我有一个猜测,我会说动画发生,但你的imgs没有完全加载。 300毫秒很短,动画很可能是在加载图像时完成的。尝试将$(document).ready()更改为$(window).load()

如果动画在刷新时起作用,那是因为你的img已经被缓存了。

答案 1 :(得分:0)

当DOM准备就绪时jQuery触发器的ready方法,没有图像。每个img都是来自主页面的独立请求。如果你有谷歌浏览器(其他浏览器具有相似的功能),你可以检查页面,在网络选项卡中,你可以看到你的网站所做的所有请求。

您需要做的是在img加载时监听事件。 jQuery有一个函数(load:jQuery load())但不推荐使用。

你应该使用on('load'),如下所示:

$('document').on('load', function() {
   //Do the magic
})

我建议您加载已隐藏的图像,并在加载时显示它们。

你也可以使用这样的东西:

var img = new Image();
img.onload = function() { //Do magic }
img.src = "http://path/to/image.jpg";