gpt4 book ai didi

javascript - 使用 javascript/jquery 在 div 顶部的进度条加载器

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:53 24 4
gpt4 key购买 nike

我正在尝试添加一个进度条(类似于 pace.js 进度条)。问题是当浏览器刷新时,pace.js progressbar 加载到 body 的顶部,而不是 div 的顶部。加载程序不应在浏览器刷新时加载,而是在单击按钮和顶部的 div 时加载。

目标是实现类似加载器的方式——当我们登录 Google 时;顶部有一个进度条。我正在尝试实现类似的功能。

我试过使用 pace.js。但是,如果有其他一些更可配置和更灵活的库可用,欢迎使用以解决问题。

function createDiv(event) {
event.target.disabled = true;
var html = '';
html += '<div id="paceProgressBarBox" style="background:#ccc;width:200px;height:200px;"></div>';
$('#myDiv').append(html)
// add pace progress bar at the top of id="paceProgressBarBox" and stop pace progress bar loading on browser referesh // instead show pace progress bar on click of button
var pace;
pace.options.target = '#paceProgressBarBox';
pace.start();
}
.pace {
-webkit-pointer-events: none;
pointer-events: none;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}

.pace-inactive {}

.pace .pace-progress {
background: #2299dd;
position: relative;
z-index: 2000;
right: 100%;
width: 100%;
height: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.js">
</script>
<br/>
<button onclick="createDiv(event)">Change Content</button>
<div id="myDiv" style="width:200px;height:200px;"></div>

最佳答案

<body>元素作为附加进度条的元素被硬编码到 pace.js 中。
但是,您可以使用 target 覆盖它设置(似乎没有出现在 documentation 中)。

有两种方式设置target :

  1. 配置 paceOptions加载步速脚本之前的变量:

    paceOptions = {
    target: '#myDiv'
    }

    工作示例:

        #myDiv {
    width: 200px;
    height: 200px;
    }

    .pace .pace-progress {
    position: relative;
    background: #2299dd;
    z-index: 2000;
    right: 100%;
    width: 100%;
    height: 5px;
    }
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    </script>

    <script>
    paceOptions = {
    target: '#myDiv'
    }
    </script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.js">
    </script>

    <button>Change Content</button>
    <div id="myDiv"></div>

  2. 在其<script>中配置进度条标签:

    <script src=".../pace.js" data-pace-options='{ "target": "#myDiv" }'></script>

    工作示例:

        #myDiv {
    width: 200px;
    height: 200px;
    }

    .pace .pace-progress {
    position: relative;
    background: #2299dd;
    z-index: 2000;
    right: 100%;
    width: 100%;
    height: 5px;
    }
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    </script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.js" data-pace-options='{ "target": "#myDiv" }'>
    </script>

    <button>Change Content</button>
    <div id="myDiv"></div>


引用:
Pace Configuration
Specify Location of Indicator


编辑:

要防止 Pace 在页面加载时自动启动,请设置 startOnPageLoad设置为 false :

jQuery('#changeContent').on('click', createDiv);
#myDiv {
width: 200px;
height: 200px;
}

.pace .pace-progress {
position: relative;
background: #2299dd;
z-index: 2000;
right: 100%;
width: 100%;
height: 5px;
}

#paceProgressBarBox {
background: #ccc;
width: 200px;
height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>

<script>
var paceOptions = {
'startOnPageLoad': false,
'target': '#paceProgressBarBox'
}

function createDiv(event) {
event.target.disabled = true;
var $progBarBox = $('<div>', {
'id': 'paceProgressBarBox'
});
$('#myDiv').append($progBarBox);
Pace.start();
}
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.js">
</script>

<button id="changeContent">Change Content</button>
<div id="myDiv"></div>

另见:
Pace's source code获取完整的选项列表
How to stop pace js plugin to run on page load

关于javascript - 使用 javascript/jquery 在 div 顶部的进度条加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55008762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com