Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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
Jquery加载页面_Jquery_Html - Fatal编程技术网

Jquery加载页面

Jquery加载页面,jquery,html,Jquery,Html,我正在尝试使用jquery创建一个简单的网站。我只想使用.load()函数将html页面加载到一个div中。问题是函数-$('.preload').hide()和({opacity:1})在页面及其图像完全加载到div之前启动!我怎样才能修好它 $(window).load(function () { $('li a').click(function () { //event on click var toLoad = $(this).attr('href'); //get href

我正在尝试使用jquery创建一个简单的网站。我只想使用
.load()
函数将html页面加载到一个div中。问题是函数-
$('.preload').hide()
和(
{opacity:1}
)在页面及其图像完全加载到div之前启动!我怎样才能修好它

$(window).load(function () {
 $('li a').click(function () { //event on click
    var toLoad = $(this).attr('href'); //get href of a li element
    $('.load-in').fadeOut('fast', loadContent);
    $('.loader').show(); //show the loader


    function loadContent() {
        $('.load-in').css({ //set opacity 0.3
            opacity: 0.3
        }).load(toLoad, hideLoad); //load html page, then callback
    };


    function hideLoad() {
        $('.load-in').fadeIn('fast',

        function () { //hide preloader and set opacity 1
            $('.loader').fadeOut('fast');
            $('.load-in').animate({
                opacity: 1
            });
        });
    };
    return false;
 });
});

您需要确保将jQuery代码放入$(document).ready()处理程序中。这将确保您的代码在加载页面中的所有元素后运行


请参阅jQuery API页面:

您需要确保将jQuery代码放入$(document).ready()处理程序中。这将确保您的代码在加载页面中的所有元素后运行


请参阅jQuery API页面:

如果要检测图像何时已完全加载,以便在显示内容后不会看到它们出现,您必须在
.load in
元素中包含的所有图像上附加
load
事件处理程序,并在加载所有图像之前等待,然后才能淡入元素并淡出加载指示器

类似这样的内容(基于您站点的代码):

然而,这里有一些你应该知道的事情(摘自):

与图像一起使用时加载事件的注意事项是一个常见问题 开发人员尝试使用.load()快捷方式解决的问题是执行 当图像(或图像集合)完全 加载。关于这一点,有几个已知的警告值得注意 注意。这些是:

  • 它在跨浏览器中无法稳定工作,也不可靠

  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发

  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发

如果要检测图像何时完全加载,以便在显示内容后看不到它们的出现,您必须在
.load in
元素中包含的所有图像上附加
load
事件处理程序,并在加载所有图像之前等待,然后才能淡入元素并淡出加载指示器

类似这样的内容(基于您站点的代码):

然而,这里有一些你应该知道的事情(摘自):

与图像一起使用时加载事件的注意事项是一个常见问题 开发人员尝试使用.load()快捷方式解决的问题是执行 当图像(或图像集合)完全 加载。关于这一点,有几个已知的警告值得注意 注意。这些是:

  • 它在跨浏览器中无法稳定工作,也不可靠

  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发

  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发


你的问题不清楚。无意冒犯,您的页面上的代码结构也很糟糕。很难理解你的意图。你需要复制问题的相关代码,而不仅仅是网页链接。你的问题不清楚。无意冒犯,您的页面上的代码结构也很糟糕。很难理解你的意图。你需要复制问题的相关代码,而不仅仅是网页链接。它已经在
窗口中。在他的页面上加载
。看看代码,这根本不是问题所在。阅读问题。它已经在
窗口中。将
加载到他的页面上。看看代码,这根本不是问题所在。阅读问题。谢谢你的帮助,我是Jquery的新手,如果这不会给你带来太多麻烦,你能演示一下怎么做吗@user2264246,我刚才回答了,但是我没有测试,但这就是我的想法。@user2264246,所以你尝试了我的解决方案,但它不起作用?您是否有任何错误或未给出预期结果?抱歉!也许是我瞎了眼什么的,但我在这里找不到接受按钮!我只看到上面你的留言被接受了,就是这样!可能是浏览器的问题@user2264246,看看这里,知道如何接受祝你有一个美好的一天!谢谢你的帮助,我是Jquery的新手,如果这不会给你带来太多麻烦,你能告诉我怎么做吗@user2264246,我刚才回答了,但是我没有测试,但这就是我的想法。@user2264246,所以你尝试了我的解决方案,但它不起作用?您是否有任何错误或未给出预期结果?抱歉!也许是我瞎了眼什么的,但我在这里找不到接受按钮!我只看到上面你的留言被接受了,就是这样!可能是浏览器的问题@user2264246,看看这里,知道如何接受祝你有一个美好的一天!
function loadContent() {
    var $loadIn = $('.load-in');

    $loadIn.css({ opacity : 0.3 }).load(toLoad , function () {
        var $images = $('img', $loadIn),
            imageCount = $images.length,
            loadedCount = 0;

            //wait on images before showing the content
            $images.on('load', function () {
                if (++loadedCount === imageCount) {
                    $images.off('load');
                    hideLoad();
                }
            });

           //make sure the content is still shown if images fails to load
           //or are very slow to load
           setTimeout(function () {
               if (loadedCount !== imageCount) {
                   $images.off('load');
                   hideLoad();
               }
           }, 5000);
    });   
};