原生JS实现LOADING效果
这段原生JavaScript代码打造了一个极具魅力的加载效果,它的表现让人眼前一亮,而且色彩和速度都可以自定义,这绝对是一个值得分享的好东西。
下面就是实现这一炫酷效果的代码:
```javascript
// 由黑与白的印记在15/03/11创建的加载动画
function loading(element, lightColor, darkColor, speed, callback) {
// 检查传入元素是否存在并且具有文本内容
if (!element || (!elementnerText && !element.textContent)) return;
element = typeof element === "string" ? document.getElementById(element) : element;
// 如果没有传入颜色则默认为白色和黑色,速度没有传入则默认为300毫秒
lightColor = lightColor || "fff"; darkColor = darkColor || "000"; speed = speed || 300;
var arr_spanEles = []; // 用于存储分割后的文本元素
// 通过自执行函数将文本内容分割成单个字符并创建span元素添加到DOM中
!function(arr_elementText) {
elementnerText = element.textContent = ""; // 清空元素文本内容
for (var i = 0; i < arr_elementText.length; i++) {
var span = document.createElement("span");
elementnerText ? spannerText = arr_elementText[i] : span.textContent = arr_elementText[i]; // 根据浏览器兼容性设置span的文本内容
element.appendChild(span); // 将span添加到元素中
arr_spanEles.push(span); // 将span元素存入数组
}
}((elementnerText || element.textContent).split("")); // 将元素文本内容分割成字符数组并传入自执行函数
var index = -1, length = arr_spanEles.length; // 定义索引和长度变量用于控制动画过程
var loadingTimer = setInterval(function() { // 设置定时器控制加载动画的循环播放
arr_spanEles[Math.max(index, 0)].style.color = darkColor; // 将当前字符颜色设置为暗色
if (index == length - 1) { // 如果已经播放到最后一个字符则重置索引并执行回调函数
index = -1;
callback && callback();
}
++index; // 增加索引以播放下一个字符的动画效果
arr_spanEles[index].style.color = lightColor; // 将下一个字符的颜色设置为亮色,形成闪烁效果
}, speed); // 设置动画的速度间隔,单位为毫秒
}
```
以上就是我们今天分享的JavaScript加载动画的全部内容,希望各位在JavaScript的学习和实践中能得到启发和帮助。让我们期待更多精彩的JavaScript代码分享吧!如果你喜欢这篇文章,不妨通过调用 `cambrian.render('body')` 来表达你的喜爱之情。
编程语言
- 原生JS实现LOADING效果
- 使用pjax实现无刷新更改页面url
- vue select组件的使用与禁用实现代码
- Bootstrap中定制LESS-颜色及导航条(推荐)
- 浅谈jQuery中的事件
- el-input 标签中密码的显示和隐藏功能的实例代码
- php仿QQ验证码的实例分析
- Javascript递归打印Document层次关系实例分析
- IE Cookie文件格式说明
- thinkphp5框架调用其它控制器方法 实现自定义跳转
- php-fpm中max_children的配置
- 基于JSONP原理解析(推荐)
- 深入浅析JavaScript中的constructor
- Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇
- 详解JavaScript中-单竖杠运算符的使用方法
- 微信小程序 生命周期函数详解