JS实现简单的下雪特效示例详解

 更新时间:2021年12月16日 15:13:08   作者:海拥✘  
很多南方的小伙伴可能没怎么见过或者从来没见过下雪,这篇文章小编给大家带来一个小Demo,模拟了下雪场景。感兴趣的小伙伴快来跟随小编一起学习一下吧

前言

很多南方的小伙伴可能没怎么见过或者从来没见过下雪,今天我给大家带来一个小Demo,模拟了下雪场景,首先让我们看一下运行效果

可以点击看看在线运行http://haiyong.site/xiaxue

首先看看项目结构,一张雪花图片,一个.html文件和 jquery-1.4.2.js

用到的雪花图片我放在这里了,或者可以直接用我上传到自己网站上的图片地址:http://haiyong.site/wp-content/uploads/2021/12/snow.png 开局一张图,内容全靠JS。

主要实现代码

HTML代码

下面这是 html 里的内容,没啥东西

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>海拥🌊 | 雪一片一片</title>
		<meta name="viewport" content="width=device-width,user-scalable=no">
		<meta name="keywords" content="雪一片一片" />
		<meta name="description" content="工具 | 雪一片一片;立志打造一个拥有100个小游戏的摸鱼网站。Made By Haiyong,技术支持——海拥" /> 
		<meta name="author" content="海拥(http://haiyong.site/moyu)" />
		<meta name="copyright" content="海拥(http://haiyong.site/moyu)" />
		<link rel="icon" href="http://haiyong.site/wp-content/uploads/2021/07/cropped-59255587-1-192x192.jpg" rel="external nofollow"  sizes="192x192" />
		<style type="text/css">
			body{
				background-color: #000000;
				margin: 0;/* 去掉自带的外边距 */
			}
			img{
				position: absolute;
			}
		</style>
	</head>
	<body>
		<script src="js/jquery-1.4.2.js" type="text/javascript" charset="utf-8"></script>		
	</body>
</html>

JS代码

首先开启定时器添加雪花图片,这里的<img src='images/snow.png'>可以改成<img src='http://haiyong.site/wp-content/uploads/2021/12/snow.png'>

setInterval(function(){
var img = $("<img src='images/snow.png'>");
$("body").append(img);

这里设置雪花的尺寸为10-20px,下面的公式即表示(0-10 + 10)px

var size = parseInt(Math.random()*11)+10;
img.css("width",size+"px");

得到屏幕宽度

var w = $(window).width();

取值范围应该是0-屏幕宽度-雪花宽度

var left =parseInt(Math.random()*(w-size));

把得到的随机1eft给到图片

img.css("left",left+"px");

添加雪花移动的动画,得到雪花移动的距离 = 屏幕高度-雪花尺寸

var top = $(window).height()-size;

下面注释中的代码是用来清除缓存的,可加可不加。

img.animate({"top":top+"px"},size*100)
/* .fadeOut(1000,function(){
	//当动画完成时执行此代码,清除缓存
	img.remove();
	//console.log($("img").length);
}); */
},10)

取消注释就会看到落下的雪会消失,如下图所示

喜欢看积雪就可以把它注释掉,预览效果像下面这样

到这里我们要实现的效果就完成了,如果运行时间过长可能会导致内存占用过多造成卡顿现象,可以将html代码中的最后一段注释里的内容取消注释,这样到下面的积雪就会慢慢淡出并且remove删除了,不过我觉得积雪也挺好看的,就没让它融化,像下面这样

到此这篇关于JS实现简单的下雪特效示例详解的文章就介绍到这了,更多相关JS简单的下雪特效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript Deferred和递归次数限制实例

    javascript Deferred和递归次数限制实例

    你知道Deferred和递归次数限制吗?如果还不知道,可以看看下面的实例,很好,适合新手朋友们
    2014-10-10
  • 超详细JavaScript深浅拷贝的实现教程

    超详细JavaScript深浅拷贝的实现教程

    浅拷贝是指,一个新的对象对原始对象的属性值进行精确地拷贝;深拷贝是指,对于简单数据类型直接拷贝他的值,对于引用数据类型,在堆内存中开辟一块内存用于存放复制的对象,并把原有的对象类型数据拷贝过来。本文将实现JavaScript深浅拷贝,需要的可以参考一下
    2022-09-09
  • html向js方法传递参数具体实现

    html向js方法传递参数具体实现

    html如何向js方法传递参数,在本文将为大家详细介绍下html注册事件向引用方法中的传参问题,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • JavaScript 中的 this 简单规则

    JavaScript 中的 this 简单规则

    想要确定this里规则是什么,其实方法很简单,通过检查它的调用位置,在函数被调用的时候确定this,下面就跟随脚本之家小编一起通过本文学习吧
    2017-09-09
  • 第七篇Bootstrap表单布局实例代码详解(三种表单布局)

    第七篇Bootstrap表单布局实例代码详解(三种表单布局)

    Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单。接下来通过本文给大家介绍Bootstrap表单布局实例代码详解,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-06-06
  • JavaScript Ajax Json实现上下级下拉框联动效果实例代码

    JavaScript Ajax Json实现上下级下拉框联动效果实例代码

    这篇文章主要介绍了JavaScript Ajax Json实现上下级下拉框联动效果实例代码,有需要的朋友可以参考一下
    2013-11-11
  • js中select选择器的change事件处理函数详解

    js中select选择器的change事件处理函数详解

    Js操作Select是很常见的,也是比较实用的,下面这篇文章主要给大家介绍了关于js中select选择器的change事件处理函数的相关资料,文中给出了详细的实例代码,需要的朋友可以参考下
    2023-06-06
  • js ie非ie浏览器的几种判断方法小结

    js ie非ie浏览器的几种判断方法小结

    其实有很多判断的方法,大都是根据浏览器的特性来的,这里简单的整理下,需要的朋友可以参考下。
    2010-05-05
  • 微信小程序数据存储与取值详解

    微信小程序数据存储与取值详解

    这篇文章主要为大家详细介绍了微信小程序数据存储与取值的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 详解如何通过JavaScript实现函数重载

    详解如何通过JavaScript实现函数重载

    这篇文章主要为大家详细介绍了如何通过JavaScript实现函数重载,文中的示例代码讲解详细,对我们学习JavaScript有一定的帮助,感兴趣的可以了解一下
    2023-01-01

最新评论