JS与CSS结合实现螺旋及旋涡光感动画特效

作者:像素猫时间:2026-10-23 21:36:07浏览:376

本文介绍如何利用JavaScript与CSS3结合,实现两种不同风格的光感视觉效果。通过动态生成DOM节点并设置旋转与位移属性,配合CSS关键帧动画,分别呈现螺旋式沉浸与旋涡式远观的视觉体验。文章包含完整HTML结构、样式定义及JS逻辑代码,适合前端开发者参考学习。

光感特效概述

本文将通过JavaScript与CSS的结合,展示一种具有视觉冲击力的光感特效实现方案。内容包含具体的效果演示及代码细节,供读者参考学习。

螺旋式沉浸效果

第一种效果呈现为螺旋式的沉浸视觉感受,通过特定的参数配置实现中心发散的光影动态。

光感特效概述

旋涡式远观效果

第二种效果表现为旋涡式的远观视觉感受,调整景深等属性可改变视觉呈现的形态。

光感特效概述

具体实现逻辑如下:

核心代码实现


<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>光感效果</title>
 </head>
 <style>
 html,body{
  height: 100%;
  overflow: hidden;
 }
 body{
  background-color: #c08eaf;
 }
 .main{
  /* 中心点 */
  width: 8px;
  height: 8px;
  /* background-color: aqua; */
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  /* 
  *景深,修改此属性可获得如上图展示的不同效果
  *如:图一的perspective为400px
  *图二的perspective为800px
  *修改为其它值还可获得更多效果
  */
  perspective: 800px;
 }
 .main i{
  /* 动点 */
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background:white;
  box-shadow: 0 0 10px 0 white;
  position: absolute;
  /* 动画 */
  animation: run 3s ease-in-out infinite;
 }
 /* .main i:nth-child(1){
  transform: rotate(0deg) translateX(80px);
 } */
 
 /* 动画 */
 @keyframes run{
  0%{
  opacity: 0;
  }
  10%{
  opacity: 1;
  }
  100%{
  opacity: 1;
  /* 3D动画效果 */
  transform: translate3d(0,0,560px);
  }
 }
 </style>
 <body>
 <div class="main" id="main">
 </div>
 </body>
 <script type="text/javascript">
 //获取元素
 var m = document.getElementById("main");
 for(var i = 0;i<60;i++){
  //创建元素
  var newNode = document.createElement("i");
  //添加元素
  m.appendChild(newNode)
  //设置旋转角度 及x轴方向位移距离
  newNode.style.transform=`rotate(${i*12}deg) translateX(80px)`
  //设置动画延迟
  newNode.style.animationDelay=`${i*0.05}s`
 }
 </script>
</html>

以上即为该光感特效的完整实现内容,希望能为读者的前端开发工作提供有益参考。

作者最新文章