jQuery实现圣诞节礼物动画案例解析
程序员文章站
2022-07-09 20:32:44
大致介绍
下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题
原地址:jquery实现花式轮播之圣诞节礼物传送效果 &...
大致介绍
下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题
思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置最外边的两个礼物旋转一定的角度并隐藏,动画开始,每个礼物向右移动一定的位置,然后再把第五个礼物添加到第一个礼物之前,这样这五个礼物就重新排列了,在写jq时只管礼物位置的变化就行了,因为礼物的旋转和隐藏在样式中都已经设置好了,某个礼物如果成为第一个礼物就会自动隐藏旋转
如果对其中的方法不熟悉的可以参考我写的jquery学习之路,里面有讲解
基本结构
代码:
<div class="cr"> <div class="cr-l"><img src="img/fatherch.png" alt=""/></div> <div class="cr-icon"> <div id="cr-icon"> <img style="left:5%" src="img/gift2.png" alt=""/> <img style="left:25%" src="img/gift2.png" alt=""/> <img style="left:45%" src="img/gift2.png" alt=""/> <img style="left:65%" src="img/gift2.png" alt=""/> <img style="left:85%" src="img/gift2.png" alt=""/> </div> </div> <div class="cr-r"><img src="img/family.png" alt=""/></div> </div>
样式
在css中用到了:first 和 :last 属性,这两个属性是动态的,如果文档的结构变了,这两个属性的值也会相应的改变,这样我们就不必再麻烦的判断哪个元素是最后一个元素(第一个元素),直接用这两个属性就会自动选择第一个元素和最后一个元素
html, body { height: 100%; margin: 0; padding: 0; } .cr{ width: 100%; position: relative; background: url("../img/bg.png") no-repeat 0 0; -webkit-background-size: 100% 100%; background-size: 100% 100%; overflow: hidden; } .cr-l,.cr-r{ position: absolute; bottom:10%; width: 20.8%; height: 70%; z-index:100; } .cr-l img,.cr-r img{ width: 100%; position: absolute; top:50%; } .cr-l{ left: 0; } .cr-r{ right:0; } .cr-icon{ bottom: 15%; left:0; position: absolute; z-index: 1000; width: 100%; height: 70%; text-align: center; } .cr-icon img{ margin-right: 25px; width: 10%; vertical-align: top; position: absolute; bottom: 0; opacity: 1; transform:rotate(0deg); transition: all 1s; } .cr-icon img:first-child{ transform:rotate(-90deg); -webkit-transform:rotate(-90deg); opacity: 0; width: 0; } .cr-icon img:last-child{ transform:rotate(90deg); -webkit-transform:rotate(90deg); opacity: 0; width: 0; }
jquery代码
在源码中,作者将这个五个礼物的初始位置写在了html结构中,我觉得不太好就在jquery的代码中实现了,代码没有什么难的,就是对思路的实现
$(function() { // 点击礼物图片,切换图片 $('#cr-icon img').click(function(){ if($(this).attr('src') == 'img/gift2.png'){ $(this).attr('src','img/gift.png'); }else{ $(this).attr('src','img/gift2.png'); } }); var timer = null; var oimg = $('#cr-icon img'); var end = document.body.clientwidth; var height = document.body.scrollheight; // 设置高 $(".cr").css("height",height); // 设置图片的初始位置 for(var i=0;i<oimg.length;i++){ $(oimg[i]).css('left', 5+i*20+'%'); } // 图片轮换函数 function scrolllogo(){ oimg.each(function(){ var left = parseint($(this).css('left')); left += end * 0.2; $(this).css('left',left); }); $('#cr-icon img:last').insertbefore('#cr-icon img:first').css('left',end * 0.05); } scrolllogo(); // 定时器,开始轮换 timer = setinterval(scrolllogo,1800); // 鼠标移入清楚轮换 oimg.mouseover(function(){ clearinterval(timer); }); // 鼠标移出开始轮换 oimg.mouseleave(function() { timer = setinterval(scrolllogo,1800); }); });
以上所述是小编给大家介绍的jquery实现圣诞节礼物动画案例解析,希望对大家有所帮助
上一篇: 又被偷了