Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 想在页面加载时显示类似youtube的进度条吗_Javascript_Jquery_Youtube_Progress Bar - Fatal编程技术网

Javascript 想在页面加载时显示类似youtube的进度条吗

Javascript 想在页面加载时显示类似youtube的进度条吗,javascript,jquery,youtube,progress-bar,Javascript,Jquery,Youtube,Progress Bar,我见过一些网站,当页面第一次加载时,会显示类似youtube的进度条。当进度条完成时,页面内容将以淡入效果显示。网站地址为https://www.skysite.com/ 我已经检查了很多类似youtube的进度条链接,但这些页面显示的进度条和您一样,但它们与页面内容无关 以下是我咨询过的一些链接 http://stackoverflow.com/questions/18350370/youtube-like-progress-bar http://onextrapixel.com/exampl

我见过一些网站,当页面第一次加载时,会显示类似youtube的进度条。当进度条完成时,页面内容将以淡入效果显示。网站地址为
https://www.skysite.com/

我已经检查了很多类似youtube的进度条链接,但这些页面显示的进度条和您一样,但它们与页面内容无关

以下是我咨询过的一些链接

http://stackoverflow.com/questions/18350370/youtube-like-progress-bar
http://onextrapixel.com/examples/youtube-like-ajax-loading-bar/index5.html
http://jsfiddle.net/ajaSB/3/
http://thuru.net/2014/10/05/youtube-like-progress-bar-using-nprogress-js-with-angular-js/
http://ricostacruz.com/nprogress/
只要指导我如何显示类似youtube的进度条,当进度完成时,我想显示页面内容。

一个选项:

  • 重定向到带有空进度条的空白页

  • 使用javascript将进度条从0%填充到100%

  • 然后使用javascript重定向到您的内容页面

  • 另一种选择:

  • 隐藏页面上的所有内容(可能使用javascript将“隐藏”添加到div中——有很多方法可以做到这一点)

  • …除了进度条。从0%填充到100%

  • 使用javascript隐藏进度条并显示所有内容


  • 您所指的网站正在使用pace-

    它监听所有ajax请求和dom加载,并在隐藏页面时显示进度条。加载所有内容后,它将显示内容

    您可以预览此库的一个实际示例(是的,inception power)

    根据评论更新: 您有两个帐户吗?
    正如我已经说过的,这个图书馆做了这一切。它跟踪脚本本身之后加载的每个字节。它是容易定制的,并且有一个清晰的文档,您应该阅读它。它允许您监视dom元素加载进度、图像/脚本/ajax文件进度,甚至长脚本

    <>如果你只有你的主要HTML页面是重的东西,你应该考虑改变你的设计和重构的小块。 如果您不能并且仍然希望跟踪进度,您可以在页面顶部放置一个简单的脚本,该脚本将:

    • 使用ajax为同一页面发送HEAD http请求。只需知道您的总页面大小(内容长度标题)
    • 根据当前页面大小显示进度(跟踪的方式很多,最简单的是
      document.firstElementChild.innerHTML.length
      (不会很精确))
    • 加载页面后,将删除进度条
    我给了你一切你需要的,让它工作

    编辑2: 因为我觉得你会要求更多。。。下面是一个NodeJs示例。 它只需创建一个http服务器,并为页面提供分块内容(并模拟延迟…)。因此,加载整个页面需要时间。 javascript实时显示文本进程

    var http = require('http');
    
    function chunked(res, count) {
        res.write('<p>Chunked content n°' + count + '</p>');
        setTimeout(function() {
            if(count > 0)
                chunked(res, count - 1);
            else
                res.end('</body></html>');
        }, 1000);
    }
    
    function handleRequest(request, response){
        response.setHeader('Connection', 'Transfer-Encoding');
        response.setHeader('Content-Type', 'text/html; charset=utf-8');
        response.setHeader('Transfer-Encoding', 'chunked');
    
    
        response.write('<html><head><script>\n' +
            'var progress = 0; startLength = 825; TotalLength = 1090;\n' +
            'function track_progress() {\n' +
            '    console.log(document.firstElementChild.innerHTML.length);' +
            '    if(progress > 1000) {' +
            '        document.body.firstElementChild.innerHTML = "Progress: 100% - Done !";\n' +
            '        return;\n' +
            '    }\n' +
            '    \n' +
            '    if(document.body) {\n' +
            '        progress = (document.firstElementChild.innerHTML.length - startLength)* 1000 / (TotalLength - startLength);\n'+
            '        document.body.firstElementChild.innerHTML = "Progress: " + (Math.round(progress)/10) + "%";\n' +
            '    }\n' +
            '    setTimeout(track_progress, 500);\n' +
            '}\n' +
            'track_progress();\n' +
        '</script></head><body><p id="progress">Progress: 0%</p>');
    
        response.write('<p>Starting to send chunked content...</p>');
        chunked(response, 10);
    }
    
    var server = http.createServer(handleRequest);
    server.listen(8080, function(){
        console.log("Server listening on: http://localhost:8080");
    });
    
    var http=require('http');
    函数分块(res、count){
    res.write(“分块内容n°”+计数+”

    ); setTimeout(函数(){ 如果(计数>0) 分块(res,count-1); 其他的 res.end(“”); }, 1000); } 函数handleRequest(请求、响应){ setHeader('Connection','Transfer Encoding'); setHeader('Content-Type','text/html;charset=utf-8'); setHeader('Transfer-Encoding','chunked'); 响应。写入('\n'+ 'var progress=0;startLength=825;TotalLength=1090;\n'+ '函数跟踪\进度(){\n'+ 'console.log(document.firstElementChild.innerHTML.length);'+ '如果(进度>1000){'+ 'document.body.firstElementChild.innerHTML=“进度:100%-完成!”;\n+ '返回;\n'+ “}\n”+ “\n”+ '如果(document.body){\n'+ '进度=(document.firstElementChild.innerHTML.length-startLength)*1000/(TotalLength-startLength);\n'+ 'document.body.firstElementChild.innerHTML=“Progress:”+(Math.round(Progress)/10)+“%”;\n+ “}\n”+ '设置超时(跟踪进度,500);\n'+ “}\n”+ '跟踪进度();\n'+ “

    进度:0%

    ”; write(“开始发送分块内容…

    ”); 分块(回答,10); } var server=http.createServer(handleRequest); listen(8080,函数(){ console.log(“正在侦听的服务器:http://localhost:8080"); });
    加载页面时,显示进度条。 加载内容后,隐藏进度条。
    您可以使用类库JQwidgets来创建进度条。

    您所指的网站正在使用“假设我的页面内容很大且需要时间加载”。所以我想在页面内容并排加载时显示类似youtube的进度条。我希望进度条进度长度和页面内容下载之间必须同步。假设当15%的页面内容下载完成时,进度长度为15%。正在寻找如何实现它的想法,特别是不知道如何在页面内容下载和进度条进度长度之间同步。是否可以在页面数据下载时显示进度条。假设页面数据或内容下载15%,那么进度条的进度也将是15%。我们可以开发这种实时进度条吗?正在寻找指导。浏览器会尽快解释Javascript。因此它能够跟踪每一次装载。此插件完成所有跟踪过程,并允许以非常简单的方式自定义呈现。假设我的页面内容很大,需要时间加载。所以我想在页面内容并排加载时显示类似youtube的进度条。我希望进度条进度长度和页面内容下载之间必须同步。假设当15%的页面内容下载完成时,进度长度为15%。寻找如何实现它的想法,特别是不知道如何在pag之间同步