Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 如何在页面加载时显示正在运行的进度条_Javascript_Jquery_Css_Html5 Canvas - Fatal编程技术网

Javascript 如何在页面加载时显示正在运行的进度条

Javascript 如何在页面加载时显示正在运行的进度条,javascript,jquery,css,html5-canvas,Javascript,Jquery,Css,Html5 Canvas,当我的页面加载时,我想在我的页面中显示一个正在运行的进度条。 在我的示例中,我使用了一个简单的加载图像,但我想在运行的进度条中转换它。这是我的密码: $(窗口).load(函数(){ 警报(“hi”); $(“#加载”).hide(); }); #加载{ 宽度:100%; 身高:100%; 顶部:0px; 左:0px; 位置:固定; 显示:块; 不透明度:0.7; 背景色:#fff; z指数:99; 文本对齐:居中; } #加载图像{ 位置:绝对位置; 顶部:100px; 左:240px; z

当我的页面加载时,我想在我的页面中显示一个正在运行的进度条。 在我的示例中,我使用了一个简单的加载图像,但我想在运行的进度条中转换它。这是我的密码:

$(窗口).load(函数(){
警报(“hi”);
$(“#加载”).hide();
});
#加载{
宽度:100%;
身高:100%;
顶部:0px;
左:0px;
位置:固定;
显示:块;
不透明度:0.7;
背景色:#fff;
z指数:99;
文本对齐:居中;
}
#加载图像{
位置:绝对位置;
顶部:100px;
左:240px;
z指数:100;
}

让AJAX更改此文本

更改内容
我已从中复制了以下相关代码。希望这能对你有所帮助

$.ajax({
  xhr: function() {
    var xhr = new window.XMLHttpRequest();
    //Upload progress
    xhr.upload.addEventListener("progress", function(evt) {
      if (evt.lengthComputable) {
        var percentComplete = evt.loaded / evt.total;
        //Do something with upload progress
        console.log(percentComplete);
      }
    }, false);
    //Download progress
    xhr.addEventListener("progress", function(evt) {
      if (evt.lengthComputable) {
        var percentComplete = evt.loaded / evt.total;
        //Do something with download progress
        console.log(percentComplete);
      }
    }, false);
    return xhr;
  },
  type: 'POST',
  url: "/",
  data: {},
  success: function(data) {
    //Do something success-ish
  }
});

这是一个鸡和蛋的问题。您将无法执行此操作,因为您需要加载资产以显示进度条小部件,此时您的页面将全部或部分下载。此外,在用户请求之前,您需要知道页面的总大小,以便计算百分比


在这个示例中,我创建了一个JavaScript进度条(带有百分比显示),您可以使用JavaScript控制并隐藏它

在此示例中,进度条每100ms前进一次。你可以从中看到它

看看这里

这绝对解决了你的问题,完整的教程如下

演示
document.onreadystatechange=函数(e){
if(document.readyState==“交互式”){
var all=document.getElementsByTagName(“*”);
对于(变量i=0,max=all.length;i
正文
{
保证金:0px;自动;
填充:0px;
字体系列:helvetica;
}
.进展
{
位置:固定;
左:0px;
顶部:0px;
宽度:100%;
身高:100%;
z指数:9999;
背景色:#F2F2;
}
.酒吧
{ 
背景色:#819FF7;
宽度:0%;
高度:5px;
边界半径:3px;
}
百分比
{ 
位置:绝对位置;
显示:内联块;
顶部:3px;
左:48%;
}
#包装纸
{
宽度:995px;
填充:0px;
保证金:0px自动;
字体系列:helvetica;
文本对齐:居中;
}
h1
{
文本对齐:居中;
字体大小:35px;
边缘顶部:60像素;
颜色:#A9BCF5;
}
H1P
{
文本对齐:居中;
边际:0px;
字号:18px;
文字装饰:下划线;
颜色:灰色;
}

使用jQueryTalkersCode.com加载页面时显示进度条


简单的步骤,遵循它们,我想它会解决你的问题

在页面中包含这些Css

.progress {
      position: relative;
      height: 2px;
      display: block;
      width: 100%;
      background-color: white;
      border-radius: 2px;
      background-clip: padding-box;
      /*margin: 0.5rem 0 1rem 0;*/
      overflow: hidden;

    }
    .progress .indeterminate {
background-color:black; }
    .progress .indeterminate:before {
      content: '';
      position: absolute;
      background-color: #2C67B1;
      top: 0;
      left: 0;
      bottom: 0;
      will-change: left, right;
      -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
              animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; }
    .progress .indeterminate:after {
      content: '';
      position: absolute;
      background-color: #2C67B1;
      top: 0;
      left: 0;
      bottom: 0;
      will-change: left, right;
      -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
              animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
      -webkit-animation-delay: 1.15s;
              animation-delay: 1.15s; }

    @-webkit-keyframes indeterminate {
      0% {
        left: -35%;
        right: 100%; }
      60% {
        left: 100%;
        right: -90%; }
      100% {
        left: 100%;
        right: -90%; } }
    @keyframes indeterminate {
      0% {
        left: -35%;
        right: 100%; }
      60% {
        left: 100%;
        right: -90%; }
      100% {
        left: 100%;
        right: -90%; } }
    @-webkit-keyframes indeterminate-short {
      0% {
        left: -200%;
        right: 100%; }
      60% {
        left: 107%;
        right: -8%; }
      100% {
        left: 107%;
        right: -8%; } }
    @keyframes indeterminate-short {
      0% {
        left: -200%;
        right: 100%; }
      60% {
        left: 107%;
        right: -8%; }
      100% {
        left: 107%;
        right: -8%; } }
然后将进度条包含在您的身体标签中

<div class="progress" id="PreLoaderBar">
        <div class="indeterminate"></div>
    </div>

如果您遇到任何问题,请告诉我,您也可以添加任何类型的进度条,您可以轻松找到它们。例如,我使用了一个不确定的进度条。

是什么让您的站点加载了50%的内容?这只是一个示例,我想在页面开始加载时显示一个进度条,从1%开始,加载完成后上升到100%。检查是否同意@Mottie-我也用于我的项目。这是一个非常好的插件,也是自动的,这意味着你所要做的就是包含脚本。试试这个简单的教程试试这个简单的jQuery函数OP要求一个页面加载进度条。您提供了一种确定上传进度的方法。+1您回答了这个问题中最难的部分——确定进度的百分比。“简单”部分(实际的进度条)可以用多种方式回答,包括jQueryUI进度条:这并不能以任何方式回答问题。OP正在查找显示页面加载进度的进度条。这个答案涉及上传进度。上传!=下载,你们看不懂吗?它有上传和下载的进度更新。我不是下载者,但看看我的场景
index.html
首先被发送到客户端,jQuery已经在其中,内联-在文档就绪时
$(function(){/*here*/})
我想抓取一个大约1MB的巨大
.js
文件,这样向用户显示一个进度条才有意义!按需加载资产与加载包含多个源(图像、样式表、JavaScript文件等)的网页不同。您可以实现一个进度条,用于按需加载单个文件,但不能用于web页面的基本HTTP请求。虽然这可能比它的价值更麻烦,但我不会说它不可能做到,因为它显然已经做到了(例如youtube和越来越多的其他网站)。@UêošKo tt它可以被模仿,是的。但是,直到你真正下载了一个页面,你才知道它有多大!这是你在网络上很少看到的答案,你无法通过http来测量网页的总体大小,而试图使其真实化是低效的,大多数开发人员只是创造了加载的假象(通过测量他们的页面平均加载速度,并使条停止100%直到完全加载)。这需要在网上更公开地讨论。真棒的答案!如果有人会使用这个,只是一个注释,样式显示没有一个对我不起作用,所以我把它改成$(“.preforerbar”).css(“display”,“none”);并在上面使用了class。
<div class="progress" id="PreLoaderBar">
        <div class="indeterminate"></div>
    </div>
document.onreadystatechange = function () {
            if (document.readyState === "complete") {
                console.log(document.readyState);
                document.getElementById("PreLoaderBar").style.display = "none";
            }
        }