js 飘落的花瓣

    网上搜了搜,没看到用js,css 动画做的效果。用jquery的也没看懂,所以记录一下。

    实现途径:css 动画实现花瓣飘落,旋转。js 实现随机出现花瓣,以及消失。

    缺点:perspective属性没用出效果;css动画出现卡顿,需要渲染跟3d加载,暂时不会弄。

    优点:学过的都会懂,随便改。至于能不能改成你想要的,你猜……

    css动画代码:

    

#petala{
	transform-origin: center;
	animation: rotateFallc 5s  infinite ;
	
}
@-webkit-keyframes rotateFallc{
	0%{transform:rotate3d(0,0,0,0deg) }
	1%{transform:rotate3d(1,0,1,-2deg) translate(-1px,1px)}
	2%{transform:rotate3d(1,0,1,-4deg) translate(-2px,2px)}
	3%{transform:rotate3d(1,0,1,-6deg) translate(-3px,3px)}
	4%{transform:rotate3d(1,0,1,-8deg) translate(-4px,4px)}
	5%{transform:rotate3d(1,0,1,-10deg) translate(-5px,5px)}
	6%{transform:rotate3d(1,0,1,-12deg) translate(-6px,6px)}
	7%{transform:rotate3d(1,0,1,-14deg) translate(-7px,7px)}
	8%{transform:rotate3d(1,0,1,-16deg) translate(-8px,8px)}
	9%{transform:rotate3d(1,0,1,-18deg) translate(-9px,9px)}
	10%{transform:rotate3d(1,0,1,-20deg) translate(-10px,10px)}
	11%{transform:rotate3d(1,0,1,-22deg) translate(-11px,11px)}
	12%{transform:rotate3d(1,0,1,-24deg) translate(-12px,12px)}
	13%{transform:rotate3d(1,0,1,-26deg) translate(-13px,13px)}
	14%{transform:rotate3d(1,0,1,-28deg) translate(-14px,14px)}
	15%{transform:rotate3d(1,0,1,-30deg) translate(-15px,15px)}
	16%{transform:rotate3d(1,0,1,-32deg) translate(-16px,16px)}
	17%{transform:rotate3d(1,0,1,-34deg) translate(-17px,17px)}
	18%{transform:rotate3d(1,0,1,-36deg) translate(-18px,18px)}
	19%{transform:rotate3d(1,0,1,-38deg) translate(-19px,19px)}
	20%{transform:rotate3d(1,0,1,-40deg) translate(-20px,20px)}
	21%{transform:rotate3d(1,0,1,-42deg) translate(-21px,21px)}
	22%{transform:rotate3d(1,0,1,-44deg) translate(-22px,22px)}
	23%{transform:rotate3d(1,0,1,-46deg) translate(-23px,23px)}
	24%{transform:rotate3d(1,0,1,-48deg) translate(-24px,24px)}
	25%{transform:rotate3d(1,0,1,-50deg) translate(-25px,25px)}
	26%{transform:rotate3d(1,0,1,-52deg) translate(-26px,26px)}
	27%{transform:rotate3d(1,0,1,-54deg) translate(-27px,27px)}
	28%{transform:rotate3d(1,0,1,-56deg) translate(-28px,28px)}
	29%{transform:rotate3d(1,0,1,-58deg) translate(-29px,29px)}
	30%{transform:rotate3d(1,0,1,-60deg) translate(-30px,30px)}
	31%{transform:rotate3d(1,0,1,-62deg) translate(-31px,31px)}
	32%{transform:rotate3d(1,0,1,-64deg) translate(-32px,32px)}
	33%{transform:rotate3d(1,0,1,-66deg) translate(-33px,33px)}
	34%{transform:rotate3d(1,0,1,-68deg) translate(-34px,34px)}
	35%{transform:rotate3d(1,0,1,-70deg) translate(-35px,35px)}
	36%{transform:rotate3d(1,0,1,-72deg) translate(-36px,36px)}
	37%{transform:rotate3d(1,0,1,-74deg) translate(-37px,37px)}
	38%{transform:rotate3d(1,0,1,-76deg) translate(-38px,38px)}
	39%{transform:rotate3d(1,0,1,-78deg) translate(-39px,39px)}
	40%{transform:rotate3d(1,0,1,-80deg) translate(-40px,40px)}
	41%{transform:rotate3d(1,0,1,-81deg) translate(-41px,41px)}
	42%{transform:rotate3d(1,0,1,-82deg) translate(-42px,42px)}
	43%{transform:rotate3d(1,0,1,-83deg) translate(-43px,43px)}
	44%{transform:rotate3d(1,0,1,-84deg) translate(-44px,44px)}
	45%{transform:rotate3d(1,0,1,-85deg) translate(-45px,45px)}
	46%{transform:rotate3d(1,0,1,-86deg) translate(-45px,46px)}
	47%{transform:rotate3d(1,0,1,-87deg) translate(-45px,47px)}
	48%{transform:rotate3d(1,0,1,-88deg) translate(-48px,48px)}
	49%{transform:rotate3d(1,0,1,-89deg) translate(-49px,49px)}
	
	50%{transform:rotate3d(1,0,1,-90deg) translate(-50px,50px)}
	51%{transform:rotate3d(1,0,1,-89deg) translate(-51px,51px)}
	52%{transform:rotate3d(1,0,1,-88deg) translate(-52px,52px)}
	53%{transform:rotate3d(1,0,1,-87deg) translate(-53px,53px)}
	54%{transform:rotate3d(1,0,1,-86deg) translate(-54px,54px)}
	55%{transform:rotate3d(1,0,1,-85deg) translate(-55px,55px)}
	56%{transform:rotate3d(1,0,1,-84deg) translate(-56px,56px)}
	57%{transform:rotate3d(1,0,1,-83deg) translate(-57px,57px)}
	58%{transform:rotate3d(1,0,1,-82deg) translate(-58px,58px)}
	59%{transform:rotate3d(1,0,1,-81deg) translate(-59px,59px)}
	60%{transform:rotate3d(1,0,1,-80deg) translate(-60px,60px)}
	61%{transform:rotate3d(1,0,1,-78deg) translate(-61px,61px)}
	62%{transform:rotate3d(1,0,1,-76deg) translate(-62px,62px)}
	63%{transform:rotate3d(1,0,1,-74deg) translate(-63px,63px)}
	64%{transform:rotate3d(1,0,1,-72deg) translate(-64px,64px)}
	65%{transform:rotate3d(1,0,1,-70deg) translate(-65px,65px)}
	66%{transform:rotate3d(1,0,1,-68deg) translate(-66px,66px)}
	67%{transform:rotate3d(1,0,1,-66deg) translate(-67px,67px)}
	68%{transform:rotate3d(1,0,1,-64deg) translate(-68px,68px)}
	69%{transform:rotate3d(1,0,1,-62deg) translate(-69px,69px)}
	
	70%{transform:rotate3d(1,0,1,-60deg) translate(-70px,70px)}
	71%{transform:rotate3d(1,0,1,-58deg) translate(-71px,71px)}
	72%{transform:rotate3d(1,0,1,-56deg) translate(-72px,72px)}
	73%{transform:rotate3d(1,0,1,-54deg) translate(-73px,73px)}
	74%{transform:rotate3d(1,0,1,-52deg) translate(-74px,74px)}
	75%{transform:rotate3d(1,0,1,-50deg) translate(-75px,75px)}
	76%{transform:rotate3d(1,0,1,-48deg) translate(-76px,76px)}
	77%{transform:rotate3d(1,0,1,-46deg) translate(-77px,77px)}
	78%{transform:rotate3d(1,0,1,-44deg) translate(-78px,78px)}
	79%{transform:rotate3d(1,0,1,-42deg) translate(-79px,79px)}
	
	80%{transform:rotate3d(1,0,1,-40deg) translate(-80px,80px)}
	81%{transform:rotate3d(1,0,1,-38deg) translate(-81px,81px)}
	82%{transform:rotate3d(1,0,1,-36deg) translate(-82px,82px)}
	83%{transform:rotate3d(1,0,1,-34deg) translate(-83px,83px)}
	84%{transform:rotate3d(1,0,1,-32deg) translate(-84px,84px)}
	85%{transform:rotate3d(1,0,1,-30deg) translate(-85px,85px)}
	86%{transform:rotate3d(1,0,1,-28deg) translate(-86px,86px)}
	87%{transform:rotate3d(1,0,1,-26deg) translate(-87px,87px)}
	88%{transform:rotate3d(1,0,1,-24deg) translate(-88px,88px)}
	89%{transform:rotate3d(1,0,1,-22deg) translate(-89px,89px)}
	
	90%{transform:rotate3d(1,0,1,-20deg) translate(-90px,90px)}
	91%{transform:rotate3d(1,0,1,-18deg) translate(-91px,91px)}
	92%{transform:rotate3d(1,0,1,-16deg) translate(-92px,92px)}
	93%{transform:rotate3d(1,0,1,-14deg) translate(-93px,93px)}
	94%{transform:rotate3d(1,0,1,-12deg) translate(-94px,94px)}
	95%{transform:rotate3d(1,0,1,-10deg) translate(-95px,95px)}
	96%{transform:rotate3d(1,0,1,-8deg) translate(-96px,96px)}
	97%{transform:rotate3d(1,0,1,-6deg) translate(-97px,97px)}
	98%{transform:rotate3d(1,0,1,-4deg) translate(-98px,98px)}
	99%{transform:rotate3d(1,0,1,-2deg) translate(-99px,99px)}
	
	100%{transform:rotate3d(1,0,1,0deg) translate(-100px,100px)}
	
}

因为会出现卡顿,所以用笨法子消除……

js随机出现花瓣和消失代码

function $id(id){
	return document.getElementById(id);
	}

	function rand(min,max){
		return Math.round(Math.random()*(max -min) +min);
	}
	
	var petala =$id("petala");

//	var perspectiveA =rand(-100,-10);
	
	function fall(ida){
		var ida =ida;
		var positionInitialx=rand(0,1200);
		var positionInitialy=rand(0,500);
		ida.style.position="absolute";
		ida.style.left=positionInitialx +"px";
		ida.style.top=positionInitialy +"px";
//		ida.style.perspective=perspectiveA;
		
		ida.style.animation="rotateFallc 5s  1 ";
		setTimeout(function(){
			ida.style.display="none";
		},5000);


		
	}

//	create petals
	function createPetals(){
		var petal = document.createElement("img");
		var imgSrc ="abcdefghijklmno".split("");
		
		var imgNum = rand(0,14);
		
		petal.src='img/petals/'+imgSrc[imgNum]+'.gif';
		
		
		var diva = document.getElementsByTagName("div")[0];
		diva.appendChild(petal);
		fall(petal);
	}
	var timer =setInterval(createPetals,500);
	document.onmousedown = function(){
		clearInterval(timer);
	}

消失不该用display:none该用remove()。

有代码累赘的地方,欢迎大神赐教。如有更简便的方法,希望能通知小的一声。


猜你喜欢

转载自blog.csdn.net/qq_38581311/article/details/80103279
今日推荐