js實現(xiàn)炫酷光感效果
本文實例為大家分享了js實現(xiàn)炫酷光感效果的具體代碼,供大家參考,具體內容如下

首先寫一個大盒子
<div class="main"></div>
然后給這個大盒子添加樣式
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
overflow: hidden;
}
body {
background: darkblue;
}
.main {
width: 8px;
height: 8px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
perspective: 800px; /* 視角 */
}
在這個大盒子周圍寫一圈小盒子,我們用js來動態(tài)生成
var main = document.getElementsByClassName("main")[0];
for (var x = 0; x < 30; x++) {
var i = document.createElement("i");
main.appendChild(i);
}
給這些小盒子添加樣式
.main i {
width: 8px;
height: 8px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.5);
box-shadow: 0 0 10px 0 white;
position: absolute;
}
var is = document.getElementsByTagName("i");
for (var i = 0; i < is.length; i++) {
is[i].style.transform = `rotate(${i * 12}deg) translateX(80px)`;
}
效果如下

然后為這些小球添加css動畫
.main i {
width: 8px;
height: 8px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.5);
box-shadow: 0 0 10px 0 white;
position: absolute;
animation: run 3s ease-in-out infinite;
}
@keyframes run {
0% {
opacity: 0;
}
10% {
opacity: 1;
}
100% {
opacity: 1;
transform: translate3d(0, 0, 560px);
}
}
效果如下

我們發(fā)現(xiàn)這些小球都是同時做動畫的,那么我現(xiàn)在不想讓他們同時做動畫怎么辦呢~,對了,設置延遲
for (var i = 0; i < is.length; i++) {
is[i].style.transform = `rotate(${i * 12}deg) translateX(80px)`;
is[i].style.animationDelay = `${i * 0.05}s`;
}
炫光效果如下

還沒完
現(xiàn)在是30個i,我們把它變成60個會怎么樣呢
var main = document.getElementsByClassName("main")[0];
for (var x = 0; x < 60; x++) {
var i = document.createElement("i");
main.appendChild(i);
}
var is = document.getElementsByTagName("i");
for (var i = 0; i < is.length; i++) {
is[i].style.transform = `rotate(${i * 12}deg) translateX(80px)`;
is[i].style.animationDelay = `${i * 0.05}s`;
}
效果如下

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
javascript下利用for( in )語句 獲得所有事件名稱的代碼
2008-02-02
關于IE中getElementsByClassName不能用的問題解決方法
今天使用getElementsByClassName寫了段小程序,在IE6、8中測試的時候就出現(xiàn)問題了,瀏覽器報錯,經(jīng)搜索找到了一個比較好的方法,是個老外寫的一個方法2013-08-08
JavaScript請求后臺數(shù)據(jù)的常用方法匯總
這篇文章主要介紹了JavaScript請求后臺數(shù)據(jù)的幾種常用方式,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
jquery根據(jù)錨點offset值實現(xiàn)動畫切換
點擊后僵硬的切換是不是很不爽,下面為大家介紹的是根據(jù)錨點offset值來實現(xiàn)動畫切換,喜歡的朋友不要錯過2014-09-09

