对前端这一块来说,很多人都喜欢把页面或者是一些操作做的美观,更多的还会做一些进度条或者是加载样式等等,这些对于程序员来说都是小事一桩,但在用户手中看着就很神奇,跳转加载中,文字能自动变换颜色,是怎么做到这样一个动画的加载效果呢?
我做了一个简单的加载效果。
文字加载效果变换颜色,那么肯定需要定义好显示的文字,其次就是变换的颜色,和变化的速度,那么我们先定义几个变量,分别表示显示的文字、变换的颜色和变化的速度。
显示的文字不是静态存在的,而是动态添加的,因为改变颜色的动画效果是一个字符一个字符的有规律的运行,那么这一串文字就不能是单纯的一串文字了,它的每一个字符都应该是单独的一个标签存放的,然后对样式进行编写。
动态写入,通过document.write()方法先写入前半部分的div标签并拼接样式,同样的方法写入后半部分,中间就是需要显示的文字,每个字符都要用单独标签包裹,使用for循环,循环长度为原本字符的长度,然后获取到当前字符,并通过相同方法使用字符串拼接写入内容,执行完毕后所需样式就完成了,下面开始写动画效果。
创建一个计数的变量n等于0,然后写方法。创建一个tempref,通过document.all[]方法获取id为neonlight的所有内容以数组形式赋值给tempref变量,然后判断当n==0时执行for循环,通过长度为定义文字长度循环遍历赋了值的数组tempref,每次循环将当前样式color更换为创建的值为灰色的变量。
使用判断n小于数组长度实现一个“伪循环”将索引赋值为当前n的值将每个字符颜色替换为创建值为红色的变量,每次执行n自增1。
当n的值增到判断条件不满足时将n重新赋值为0,再使用clearInterval()方法(参数为setInterval()返回的ID值)取消下面的方法内的方法体setInterval()的周期性(如果不取消周期性,setInterval()方法每调用一次方法频率就越来越快),再使用setTimeout()方法将下面方法规定多久后执行,最后返回,n的值又重置为0了。
最后在加载时调用一次frequencyFun()方法就行了。
setInterval()是按指定周期调用函数,也可以说是按指定周期无限调用。将调用函数执行频率降为500毫秒一次,那么改变为红色的频率就降低,看起来就是一个加载的效果,然后每次执行到最后又重新调用,就实现了一个无限循环执行。
页面显示效果就是每500秒改变一个字符的颜色,执行完成一次所有颜色改变,又改变为灰色重新执行。
文字加载样式
最新推荐文章于 2024-07-24 10:22:02 发布