CSS3实现雪花飘落动画_html/css_WEB-ITnose

php中文网
发布: 2016-06-21 09:01:07
原创
2298人浏览过

<html><head>	<meta http-equiv="content-type" content="text/html; charset=utf-8">	<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">	<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">	<meta name="apple-mobile-web-app-capable" content="yes">	<meta name="format-detection" content="telephone=no, email=no">	<title>snowflake</title>	<script type="text/javascript" src="http://w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>	<style type="text/css">		body {			padding: 0;			margin: 0;			background-color: #333;			font-size: 14px;			color: #bcbcbc;		}		input {			border: solid 0px #ddd;			border-radius: 5px;			padding: 5px 10px;			width: 120px;		}		button {			border: solid 0px #ccc;			border-radius: 5px;			background-color: #fff;			padding: 5px 10px;		}		#sky {			width: 100%;			max-width: 640px;			height: 100%;			background-color: #a39;			margin: 0 auto;			position: relative;    		overflow: hidden;		}		.snowflake {			width: 50px;			height: 50px;			border-radius: 50px;			background-color: rgba(255, 255, 255, 0.5);			position: absolute;			top: 10px;			left: 100px;			display: inline-block;			transition: top 2s;			-moz-transition: top 2s;/* firefox 4 */			-webkit-transition: top 2s;/* safari 和 chrome */			-o-transition: top 2s;			transition-timing-function: cubic-bezier(0.25,0.1,0.25,1);			-moz-transition-timing-function: cubic-bezier(0.25,0.1,0.25,1);			-webkit-transition-timing-function: cubic-bezier(0.25,0.1,0.25,1);			-o-transition-timing-function: cubic-bezier(0.25,0.1,0.25,1);		}		#operate {			text-align: right;		}		#operate div {			margin: 10px;		}	</style></head><body>	<div id="sky"></div>	<div id="operate">		<div>			<label>下雪频率(ms): <input name="rate" type="number" min="1" /></label>		</div>		<div>			<label>融化时间(ms): <input name="melt" type="number" min="0" /></label>		</div>		<div>			<button id="start-or-stop" onclick="startorstop()">start</button>		</div>	</div>	<script type="text/javascript">	var $sky = $('#sky');	var maxtop = $sky.height() - 5;// 地面高度值(px)	var rate = 60;// 飘落频率(ms)	var flakesize = 10;// 单片雪花宽高值(px)	var melt = 2000;// 融化时间(ms)	// 初始化雪花	function snowflake(size, alpha, top, left) {		var s = document.createelement('div');		$(s).css({			'width': size,			'height': size,			'border-radius': size,			'background-color': 'rgba(255,255,255,' + alpha + ')',			'top': -50,			'left': left,		}).addclass('snowflake');		return s;	}	// 雪花飘落并融化	function dift($s) {		$s.css('top', maxtop + (flakesize - $s.width()) / 2);		settimeout(function() {			$s.remove();		}, 2000 + melt);	}	// 开始动画	var animateid = -1;	var it = false;	function start() {		if(!it) {			it = setinterval(function() {				// 初始化雪花				var id = 's_' + (++animateid);				var size = math.random() * flakesize + 2;				var alpha = math.random() * 0.7 + 0.1;				var left = math.random() * $(window).width();				var s = snowflake(size, alpha, 0, left);				var $s = $(s).attr('id', id);				$sky.get(0).appendchild(s);				// 雪花飘落				settimeout(function() {					dift($s);				}, 100);				if(animateid > 10000) {// 避免越界					animateid = 0;				}			}, rate);			$('#start-or-stop').html('stop');		}	}	start();	// 停止动画	function stop() {		clearinterval(it);		it = false;		$('#start-or-stop').html('start');	}	// 开始或暂停动画	function startorstop() {		if(!it) {			start();		} else {			stop();		}	}	// 重启动画	function restart() {		stop();		start();	}	$(function() {		// 监听rate输入框		var minrate = 1, maxrate = 3000;		$('input[name="rate"]').val(rate).on('change', function() {			rate = parseint($(this).val());			if(rate < minrate) {				rate = minrate;				$(this).val(rate);			} else if(rate > maxrate) {				rate = maxrate;				$(this).val(rate);			}			restart();		}).prop({			min: minrate,			max: maxrate		});		// 监听melt输入框		var minmalt = 0, maxmelt = 100000;		$('input[name="melt"]').val(melt).on('change', function() {			melt = parseint($(this).val());			if(melt < minmalt) {				melt = minmalt;				$(this).val(melt);			} else if(melt > maxmelt) {				melt = maxmelt;				$(this).val(melt);			}			restart();		}).prop({			min: minmalt,			max: maxmelt		});	});	</script></body></html>
登录后复制


HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号