jQuery实现圣诞节礼物动画案例解析
发布时间 - 2026-01-10 22:05:31 点击率:次大致介绍

下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题
原地址: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实现圣诞节礼物动画案例解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# jquery圣诞节礼物动画
# jQuery实现圣诞节礼物传送(花式轮播)
# 第一个
# 这两个
# 就会
# 鼠标
# 小编
# 好了
# 就在
# 也会
# 我觉得
# 在此
# 没有什么
# 之路
# 给大家
# 写在
# 中都
# 我写
# 再把
# 所述
# 不熟悉
# 到第
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
node.js报错:Cannot find module 'ejs'的解决办法
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
iOS发送验证码倒计时应用
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何制作一个表白网站视频,关于勇敢表白的小标题?
焦点电影公司作品,电影焦点结局是什么?
如何自定义建站之星模板颜色并下载新样式?
深圳网站制作的公司有哪些,dido官方网站?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
移动端脚本框架Hammer.js
JS去除重复并统计数量的实现方法
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel如何优化应用性能?(缓存和优化命令)
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
如何在服务器上配置二级域名建站?
如何快速搭建支持数据库操作的智能建站平台?
如何快速生成凡客建站的专业级图册?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
香港服务器建站指南:免备案优势与SEO优化技巧全解析
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何基于PHP生成高效IDC网络公司建站源码?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel怎么使用artisan命令缓存配置和视图
利用vue写todolist单页应用
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
SQL查询语句优化的实用方法总结
python中快速进行多个字符替换的方法小结
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
如何快速搭建高效WAP手机网站吸引移动用户?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何在橙子建站中快速调整背景颜色?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
北京专业网站制作设计师招聘,北京白云观官方网站?
如何构建满足综合性能需求的优质建站方案?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Python自动化办公教程_ExcelWordPDF批量处理案例

