本文概述
- 要求
- 基本用法
- 方法和选项
在本文中, 你将学习如何使用LoadGo使用自己的徽标创建自定义进度栏。
要求 为了实现我们的目标, 我们将使用LoadGo插件。 LoadGo是一个Javascript插件, 它允许你使用几行代码来轻松使用自己的图像来创建进度条。该插件非常适合在用户等待加载内容(网站, 检索信息, 更新状态等)时为徽标图像动画创建自定义进度栏。
- 它会在所需的DOM元素上方创建一个叠加层, 并使用宽度计算来模拟加载过程。
- LoadGo已在IE 9, IE 10, IE Edge, Google Chrome和Mozilla Firefox中进行了测试。
要开始使用LoadGo, 请在此处下载.zip母版, 或从GitHub克隆项目。 LoadGo有2个版本, 一个使用jQuery, 另一个使用普通的vanillaJS, 独立于你要使用的版本, 使用script标签将脚本添加到文档中:
<
!-- If you use jQuery -->
<
script type="text/javascript" src="http://www.srcmini.com/path-to/loadgo.min.js">
<
/script>
<
!-- If you don't use jQuery -->
<
script type="text/javascript" src="http://www.srcmini.com/path-to/loadgo-nojquery.min.js">
<
/script>
然后LoadGo将被加载到你的文档中。如果使用的是jQuery, 则可以将其与$(” element” )。loadgo()一起使用, 或者使用的是纯Javascript, 则LoadGo对象将在窗口中全局可用。
LoadGo受MIT许可。随意下载, 修改和适应你自己的目的。如果发现任何错误, 请发送拉取请求或在官方Github存储库中写问题。
基本用法 如前所述, LoadGo是一个插件, 它为你提供了一种更好的方式来使你的用户随时了解加载过程的最新信息。例如:
- 用户将文件上传到你的服务器。
- 系统正在将文件转换为PDF或其他内容。
- 当前页面正在加载。
<
div>
<
img id="logo-loader" src="http://www.srcmini.com/my-logo-file.png" alt="Loading my friend ..." />
<
/div>
在这种情况下, 我们的元素具有徽标加载程序ID。现在使用Javascript进行初始化, 如果你使用的是带有纯javascript的jQuery或Loadgo.init, 则执行$(” element” )。loadgo方法。
// If you're using jQuery$('#logo-loader').loadgo();
// If you're using plain JSvar imgLogoElement = document.getElementById("logo-loader");
Loadgo.init(imgLogoElement);
那应该创建透明的覆盖层, 以使你的徽标清晰明了, 但是它不会单独显示进度!因此, 我们需要使用使用vanillaJS的Loadgo.setprogress或$(element).loadgo(‘ setprogress’ , value)来更改栏的进度。由于如何更改进度条的值取决于你, 我们将展示一个使用setInterval并使用Javascript更改进度条的值的示例。
为此, 你有2个选择:
使用内置循环方法
要测试你是否正确实现了所有功能, 可以执行loop方法创建一个不确定的循环, 该循环将使进度条具有动画效果:
// jQuery$('#logo-loader').loadgo('loop', 10);
// JavascriptLoadgo.loop(document.getElementById('logo-loader'), 10);
并使用以下命令停止它:
// jQuery$('#logo-loader').loadgo('stop');
// JavascriptLoadgo.stop(document.getElementById('logo-loader'));
那应该产生以下结果:
文章图片
使用JS使自己复杂化
你可以使用setInterval方法实现自己的进度更改:
var progress = 0;
// Every half second add 10 to the progress of the barvar myInterval = setInterval(function(){ // Stop progressif(progress == 100){return stopInterval();
}// Update progressprogress += 10;
// Change progress of the bar with JAVASCRIPTLoadgo.setprogress(document.getElementById("logo-loader"), progress);
}, 500);
function stopInterval(){clearInterval(myInterval);
console.log("The progress bar has a value of 100 %");
}
并使用jQuery:
var progress = 0;
// Every half second add 10 to the progress of the barvar myInterval = setInterval(function(){ // Stop progressif(progress == 100){return stopInterval();
}// Update progressprogress += 10;
// Change progress of the bar with JQUERY$('#logo-loader').loadgo('setprogress', progress);
}, 500);
function stopInterval(){clearInterval(myInterval);
console.log("The progress bar has a value of 100 %");
}
【如何使用自己的logo创建自定义加载栏】就是这样, 带有你自己的徽标的LoadGo的最基本实现。以下示例说明了Loadgo如何与Our Code World徽标一起使用:
文章图片
对于前面的示例, 使用的代码是:
<
div>
<
img id="logo-loader" src="http://ourcodeworld.com/resources/img/ocw-logo-main.png" />
<
/div>
<
!-- Load Loadgo -->
<
script type="text/javascript" src="http://img.readke.com/220523/0230001512-6.jpg">
<
/script>
<
script>
var image = document.getElementById("logo-loader");
// When the image loads, create the progressimage.onload = function(){// Init the loaderLoadgo.init(image);
// Load effecttriggerLoadEffect();
};
function triggerLoadEffect(){var progress = 0;
// Every half second add 10 to the progress of the barvar myInterval = setInterval(function(){ // Stop progressif(progress == 100){return stopInterval();
}// Update progressprogress += 10;
// Change progress of the barLoadgo.setprogress(image, progress);
}, 500);
function stopInterval(){clearInterval(myInterval);
console.log("The progress bar has a value of 100 %");
}}<
/script>
除了setprogress方法, 循环和停止之外, LoadGo还提供了其他两种方法。
方法和选项 你可以在插件初始化时设置一些选项:
// Custom options with jQuery$('#my-image').loadgo({filter:'blur', direction:'bt', opacity:1, image:'custom-overlay.png', bgcolor:'#01AEF0'});
// Custom options with Javascriptvar element = document.getElementById("my-image");
Loadgo.init(element, {filter:'blur', direction:'bt', opacity:1, image:'custom-overlay.png', bgcolor:'#01AEF0'});
API的supportes选项包括:
- bgcolor:背景叠加颜色(十六进制或RGB)。默认值为#FFFFFF。
- 不透明度:覆盖透明度。默认值为0.5
- 动画:如果启用了setprogress CSS宽度过渡, 则为true, 否则为false。默认值为true(注意:Internet Explorer不支持CSS过渡)。
- image:如果想要背景图片而不是简单的颜色, 则可以使用图片网址。此选项禁用bgcolor选项。
- class:将应用于叠加层的CSS类。通过使用此选项, 你应该确保所有内容看起来都不错, 因为类的某些CSS选项可能会使其他LoadGo插件CSS选项无效。默认为无。
- 调整大小:调整大小功能。 LoadGo提供了一个功能, 默认情况下会自动调整LoadGo叠加层的大小, 但是你可以使用自己的功能。
- 方向:动画方向。可能的值:” lr” (从左到右), ” rl” (从右到左), ” bt” (从下到上), ” tb” (从上到下)。默认值为” lr” 。
- filter:根据CSS过滤器属性的CSS图像过滤器。可能的值:” 模糊” , “ 灰度” , “ 棕褐色” , “ 色相旋转” , “ 反转” , “ 不透明” 。
设定进度
设置进度方法需要一个数字来设置加载叠加层的进度, 该数字必须介于0到100(百分比)之间:
// jQuery$('#logo').loadgo('setprogress', 50);
// JavascriptLoadgo.setprogress(document.getElementById('logo'), 50);
重设进度
此方法将进度自动设置为零。当你将同一个元素用于多个加载, 并且需要在启动一个新元素之前将其全部重置时, 这非常有用。
// jQuery$('#logo').loadgo('resetprogress');
// JavascriptLoadgo.resetprogress(document.getElementById('logo'));
取得进展
此方法返回当前进度。此数字将在0到100(百分比)之间。
// jQuery$('#logo').loadgo('getprogress');
// JavascriptLoadgo.getprogress(document.getElementById('logo'));
环
集覆盖方法会创建一个无限循环。对于无法测量进度的情况, 这很有用。此方法接受duration(ms)参数来自定义动画速度。你可以使用stop方法停止它。
// jQuery$('#logo').loadgo('loop', 10);
// JavascriptLoadgo.loop(document.getElementById('logo'), 10);
停止
stop方法停止循环并显示完整图像。
// jQuery$('#logo').loadgo('stop');
// JavascriptLoadgo.stop(document.getElementById('logo'));
有关此库的更多示例和可能性, 请访问此处的官方网站上的示例区域。编码愉快!
推荐阅读
- 如何使用CSS和jQuery禁用文档中的文本选择
- 如何使用TinyMCE和Prism.js添加代码段
- 如何解决Xampp错误(启动Apache时,另一个应用程序(Skype)正在使用端口80)
- 如何创建与Skype交互的HTML链接(通话,聊天,查看个人资料,添加到联系人)
- HTML5 Accesskey属性(你可能不需要JavaScript即可添加键盘快捷键)
- Webpack无效的主机标头(无法从LAN访问Webpack开发服务器)
- 如何在NetBeans中轻松地将文件路径和目录路径复制到剪贴板
- Android EditText android(文字无效)
- 布局问题Android Studio [关闭]