▓▓▓▓▓▓ 大致介绍

  下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题

  原地址:花式轮播----圣诞礼物传送

  思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置最外边的两个礼物旋转一定的角度并隐藏,动画开始,每个礼物向右移动一定的位置,然后再把第五个礼物添加到第一个礼物之前,这样这五个礼物就重新排列了,在写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:;
padding:;
}
.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:;
}
.cr-l img,.cr-r img{
width: 100%;
position: absolute;
top:50%;
}
.cr-l{
left:;
}
.cr-r{
right:;
}
.cr-icon{
bottom: 15%;
left:;
position: absolute;
z-index:;
width: 100%;
height: 70%;
text-align: center;
}
.cr-icon img{
margin-right: 25px;
width: 10%;
vertical-align: top;
position: absolute;
bottom:;
opacity:;
transform:rotate(0deg);
transition: all 1s;
}
.cr-icon img:first-child{
transform:rotate(-90deg);
-webkit-transform:rotate(-90deg);
opacity:;
width:;
}
.cr-icon img:last-child{
transform:rotate(90deg);
-webkit-transform:rotate(90deg);
opacity:;
width:;
}

▓▓▓▓▓▓ 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动画-圣诞节礼物的更多相关文章

  1. 华丽的HTML5/jQuery动画和应用 前端必备

    在网页应用中,我们经常会使用jQuery来实现一些简单的动画效果,比如菜单下拉时的渐变特效,图片滑动时的淡入淡出效果等.现在我们将jQuery和HTML5互相结合,让HTML5/CSS3强大的页面渲染 ...

  2. jQuery动画的实现

    没有引入deferred机制,其余流程都有了 //////////// //创建动画缓动对象 // //////////// function Tween(value, prop, animation ...

  3. 深入学习jQuery动画控制

    × 目录 [1]动画状态 [2]停止动画 [3]动画延迟[4]全局控制 前面的话 jQuery动画可以使用fade.hide.slide等方法实现基本动画效果,可以使用animate实现自定义动画,甚 ...

  4. 深入学习jQuery动画队列

    前面的话 队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现.本文将详细介绍jQuery动画队列 queue() queue()方法用来显示在匹配的元素上的已经执行的函数队列 q ...

  5. jquery动画,基础以及我发现的新大陆

    $.animate()在jquery官方介绍有2中方式,其实我发现的新大陆也是第二种方式的扩展! 一.$.animate( properties [, duration ] [, easing ] [ ...

  6. 让网站动起来!12款优秀的 jQuery 动画插件推荐

    如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...

  7. jQuery动画特效实例教程

    本文以实例形式详细讲述了jQuery动画特效的实现方法. 1.自制折叠内容块 内容块如下:     <div class="module">   <div cla ...

  8. JQuery动画效果

    jquery动画效果常用方法 1.show()显示效果语法:show(speed,callback)Number/String,Function speend为动画执行时间,单位为毫秒.也可以为slo ...

  9. jQuery动画特效笔记

    show().hide().fadeIn().fadeOut().slideDown.slideUp.slideToggle()都接受可选的时长和回调参数(选项对象参数). toggle(durati ...

随机推荐

  1. ASP.NET Core 之 Identity 入门(一)

    前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...

  2. 百度MIP页规范详解 —— canonical标签

    百度MIP的规范要求必须添加强制性标签canonical,不然MIP校验工具会报错: 强制性标签<link rel="/^(canonical)$/"> 缺失或错误 这 ...

  3. ASP.NET Aries 入门开发教程9:业务表单的开发

    前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...

  4. 清空Github上某个文件的历史版本

    title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...

  5. scrapy 知乎用户信息爬虫

    zhihu_spider 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo,下载这些数据感觉也没什么用,就当为大家学习scrapy提供一个例子吧.代码地 ...

  6. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  7. CSS 特殊属性介绍之 pointer-events

    首先看一下 MDN 上关于 pointer-events 的介绍: CSS属性 pointer-events 允许作者控制特定的图形元素在何时成为鼠标事件的 target.当未指定该属性时,SVG 内 ...

  8. 关于 devbridge-autocomplete 插件多选操作的实现方法

    目前据我所知最好用的 autocomplete 插件就是 jquery-ui 的 autocomplete 以及 devbridge 的 autocomplete 插件. 我最终选择了 devbrid ...

  9. ES6之let命令详解

    let与块级作用域 { var foo='foo'; let bar='bar'; } console.log(foo,'var'); //foo varconsole.log(bar ,'bar') ...

  10. Java虚拟机 JVM

    finalize();(不建议使用,代价高,不确定性大) 如果你在一个类中覆写了finalize()方法, 那么你可以在第一次被GC的时候,挽救一个你想挽救的对象,让其不被回收,但只能挽救一次. GC ...