JavaScript 实现雪花飘落动画效果

作者:页面旅途时间:2026-10-23 20:59:07浏览:609

本文介绍如何使用 JavaScript 结合 jQuery 实现网页雪花飘落动画。通过随机生成雪花位置、大小及运动轨迹,利用 animate 方法控制下落过程,并在雪花移出可视区域后自动移除元素以优化性能。代码逻辑清晰,重点在于运动算法与随机判断的应用,适合节日专题页面开发参考。

JavaScript 雪花飘落效果实现

临近圣诞节,许多前端开发者可能会接到制作节日专题页面的需求。为了契合节日氛围,页面中通常会加入雪花飘落的动态效果,我司也不例外。以下分享一段使用 JavaScript 编写的雪花飘落实现代码:


<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
  <script src="jquery-1.8.3.min.js"></script>
 </head>
 <style>
 html{
  max-width: 720px;
  
 }
 body{
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow-x: hidden;
 }
 .snow{
  width: 100%;
  height: 100%;
  background: pink;
  overflow: hidden;
 }
 .snow_img{
  position: absolute;
  top: -50px;
  margin-left: 1px;
 }
 </style>
 <body>
 <div class="snow"></div>
 <script>
 $(function(){
  $('body').css("height",$(window).height())
  var wid=$(".snow").width();
  var html_snow="<img src='snow.png' class='snow_img'>";
  setInterval(function(){$(".snow").append(html_snow);snowFlow();},100);
  function snowFlow(){
  $(".snow_img").each(function(index){
   var snow_time=(Math.random()*10+4)*1000;
   var wid_snow=Math.floor(Math.random()*40+5)+'px';
         var float_left=Math.random()*wid*2-wid+"px";
   var wid_left=Math.random()*wid+"px";
    if( $(this).css("margin-left")==1+"px"){
   $(this).css("margin-left",wid_left);
   }
   if($(this).width()==0 || $(this).width()==50 ){
   $(this).width(wid_snow);
   }
   $(this).animate({top:800+"px",left:float_left,},snow_time);
   if($(this).offset().top==800){
         $(this).remove();
   }
  })
  }
 });
 
 </script>
 </body>
</html>

该段代码逻辑简洁,主要运用了 JavaScript 中的运动基础、随机数生成以及条件判断等知识点。实现过程并不复杂,核心在于掌握相关的运动思维,理清逻辑后即可轻松完成。具体视觉效果如下所示:

JavaScript 雪花飘落效果实现

如需查看动态演示,可直接复制上述代码并在浏览器中运行。欢迎提供优化建议。

以上内容为本文的全部分享,希望能对各位的学习有所帮助,也欢迎大家继续支持本站。

作者最新文章