jQuery实现圣诞节礼物传送(花式轮播)
发布时间 - 2026-01-10 22:05:00 点击率:次大致介绍

下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题
原地址:花式轮播----圣诞礼物传送
思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置最外边的两个礼物旋转一定的角度并隐藏,动画开始,每个礼物向右移动一定的位置,然后再把第五个礼物添加到第一个礼物之前,这样这五个礼物就重新排列了,在写jQ时只管礼物位置的变化就行了,因为礼物的旋转和隐藏在样式中都已经设置好了,某个礼物如果成为第一个礼物就会自动隐藏旋转
基本结构
代码:
<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 实现轮播图详解及实例代码
# 原生Javascript和jQuery做轮播图简单例子
# jQuery实现图片轮播效果代码
# jQuery实现的图片轮播效果完整示例
# jQuery自适应轮播图插件Swiper用法示例
# jquery实现左右无缝轮播图
# 用jQuery实现优酷首页轮播图
# jquery实现轮播图效果
# jQuery实现大图轮播
# 第一个
# 这两个
# 就会
# 鼠标
# 好了
# 就在
# 也会
# 我觉得
# 没有什么
# 写在
# 中都
# 再把
# 到第
# 要快
# 画中
# 这五
# 第五个
# 实现了
# 看到了
# 移出
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何在云虚拟主机上快速搭建个人网站?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
如何自定义建站之星模板颜色并下载新样式?
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
怎么用AI帮你设计一套个性化的手机App图标?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
javascript中闭包概念与用法深入理解
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
桂林网站制作公司有哪些,桂林马拉松怎么报名?
深圳网站制作培训,深圳哪些招聘网站比较好?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
如何快速生成橙子建站落地页链接?
如何用wdcp快速搭建高效网站?
企业网站制作这些问题要关注
浅谈redis在项目中的应用
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何在七牛云存储上搭建网站并设置自定义域名?
Laravel观察者模式如何使用_Laravel Model Observer配置
在线制作视频网站免费,都有哪些好的动漫网站?
nodejs redis 发布订阅机制封装实现方法及实例代码
Android仿QQ列表左滑删除操作
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
移动端脚本框架Hammer.js
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
详解Oracle修改字段类型方法总结
如何快速搭建FTP站点实现文件共享?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
详解jQuery中的事件
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
利用python获取某年中每个月的第一天和最后一天
Linux安全能力提升路径_长期防护思维说明【指导】
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
高防服务器如何保障网站安全无虞?
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
深圳网站制作的公司有哪些,dido官方网站?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
C语言设计一个闪闪的圣诞树
Laravel如何为API生成Swagger或OpenAPI文档
,怎么在广州志愿者网站注册?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
node.js报错:Cannot find module 'ejs'的解决办法
Python进程池调度策略_任务分发说明【指导】

