`
换个号韩国红果果
  • 浏览: 48051 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

动画合集

阅读更多
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition  制作鼠标滑过图片时的放大效果
css
.wrap{
		width: 340px;height: 340px;
		position: absolute;
		top: 30%;
		left: 20%;
		overflow: hidden;
		border: 1px solid;
		

	}
	img{
		transition:transform 5s;
	}
	img:hover{
		transform:scale(1.4,1.4);
	}
html
<div class="wrap"><img src="1.png" alt="" ></div>

设置好wrap的宽度高度,并且设置overflow hidden  这样可以时图片放大时wrap尺寸不会随它变化,并且溢出的隐藏起来。
当鼠标滑过时,为transform  设置5s的过度效果。
transition 语法transition :all 0.5s linear 1s all表示所有属性变化都用过渡效果四个参数依次表示属性,过渡时间,过渡函数,延迟时间


2 keyframes  制作动画
css 定义动画过程
@-webkit-keyframes first{
		0%{
			transform:rotate(0deg);
		}
		25%{
			transform:rotate(90deg);
		}
		50%{
			transform:rotate(180deg);
		}
		75%{
			transform:rotate(270deg);
		}
		100%{
			transform:rotate(360deg);
		}
	}
img{
		position: absolute;
		top: 30%;
		left: 20%;
		animation:first 5s infinite ;
		-webkit-animation: first 5s infinite linear;
		/*transform:rotate(10deg);*/
	}
animation要配合keyframes来使用

3  动画http://gudh.github.io/ihover/dist/index.html
第一组

难点:a 将鼠标移入时外面圆圈的旋转。用transform:rotate(180deg)来做
b外面圆圈的制作,可以为设置border-radius属性以及border的宽度颜色属性来制作。
c wrap内部图片要使它成为园,则应该overflow: hidden;border-radius: 50%; 再设置宽高。为了让图片显示清晰设置图片宽高自适应width: 100%;height: 100%;不然图片会被放大。
d 在鼠标移入时有两种动作,文字慢慢显示,圆圈旋转,注意这是最巧妙的地方,原框架中通过在外面套一个a标签,然后设置当它hover时改变以上两者的属性,达到我们需要的效果。
css
.wrap,.wrapo{
		width: 200px;height: 200px;overflow: hidden;border-radius: 50%;color: #fff;position: absolute;top: 10px;left: 10px;
	}
	.contener{
		position: relative;
		top: 100px;left: 100px;
		border: 1px solid;
	}
	.contener a{
		display: block;
		text-decoration: none;

	}
	img{
		width: 100%;height: 100%;
	}
	.border{
		width: 200px;height: 200px;border: 10px solid #ecab18;border-right-color: #1ad280;border-bottom-color: 
		#1ad280;border-radius: 50%;transition:all 1s ease-in-out;
	}
	 
	a:hover .border{
		/*border-color: #ecab18;
		border-top-color: #1ad280;border-left-color: */
		transform:rotate(180deg);
		
	}
	.wrapo{
		/*position: absolute;*/
		/*visibility : hidden;*/
		opacity:0;
		z-index: 5;
		transition:all 1s ease-in-out;
	}
	.wrapo h3{
		position: relative;top: 50px;left: 20px;
	}
	a:hover .wrapo{
		opacity: 1;
		/*visibility : visible;*/
		background-color: rgba(0,0,0,.3);
		
	}
html
<div class="contener"><a href="#">
<div class="wrapo"><h3>is it beautiful?</h3>
</div>
<div class="border">
</div>
<div class="wrap"><img src="5.jpg" alt="" ></div>
</a>
</div>

4  动画http://gudh.github.io/ihover/dist/index.html
第2组
所做更改,border尺寸要减小 并且经观察,border在wrap之上,故要为border设置position属性  以此来设置z-index属性。此时border已经脱离文档,故包裹图片的wrap不用设置position可以直接放上去出现与border的层叠,便会出现一个圆圈,又要设置wrap  并且显示时它显然显示在圆圈之上,也就是在border之上,故它也要设置position属性并且它的z-index大于border 尺寸与wrap一致。再设置它隐藏在左边即可。再观察,此时转动的应该是.wrap  故再为它设置hover时转动即可.但是此时当把鼠标移到wrappo时 a:hover也被触发。为什么呢  因为它也属于a的一部分,故会触发。即使此时opacity=0,但是它只是透明度为0,没有达到隐藏的目的,结下来解决这个bug。初步想法是把它隐藏起来。display不能运用动画,但是visibility可以,故这里先设置wrappo visibility=hidden  在  a:hover时再把visibility  设为可见即可 完美解决
css
.wrapo{
		width: 200px;height: 200px;overflow: hidden;border-radius: 50%;color: #fff;position: absolute;z-index: 7;left: 300px;
	}
	.wrap{
		width: 200px;height: 200px;overflow: hidden;border-radius: 50%;transition:all 1s ease-in-out;
	}
	.contener{
		position: relative;
		top: 100px;left: 100px;
		border: 1px solid;
		width: 200px;
		height: 200px;
	}
	.contener a{
		display: block;
		text-decoration: none;

	}
	img{
		width: 100%;height: 100%;
	}
	.border{
		width: 170px;height: 170px;border: 15px solid rgba(255,255,255,.5);border-radius: 50%;position: absolute;z-index: 5;
	}
	 
	a:hover .wrap{
		/*border-color: #ecab18;
		border-top-color: #1ad280;border-left-color: */
		transform:rotate(180deg);
		
	}
	.wrapo{
		/*position: absolute;*/
		/*visibility : hidden;*/
		opacity:0;
		z-index: 5;
		transition:all 1s ease-in-out;
	}
	.wrapo h3{
		position: relative;top: 50px;left: 20px;
	}
	a:hover .wrapo{
		opacity: 1;
		/*visibility : visible;*/
		background-color: rgba(0,0,0,.3);
		left: 0px;
		
	}
html
与上面一致

第2组第二种做法,运动用transform来做,先transformX(100%)再在a:hover时再transform(0)就可以了  至于鼠标移入wrappo时的hover事件  用一个不常用的来做。把事件给禁止了pointer-events:none;并且圆圈不用border来做了 而用wrap的伪元素来做并且设置他的box-shadow inset值
css
.wrapo{
		width: 200px;height: 200px;overflow: hidden;border-radius: 50%;color: #fff;position: absolute;background-color: #1a4a72;transition:all 1s ease-in-out;backface-visibility:hidden;transform:translateX(100%);//% 是相对于包含框的设置position是为了脱离文档流让它与其他元素重叠。设置它的z-index是为了在其他元素之上。
pointer-events:none;
	}
	.wrap{
		width: 200px;height: 200px;overflow: hidden;border-radius: 50%;transition:all 1s ease-in-out;
	}
	.wrap:before{
	content: '';width: 100%;height: 100%;display: block;border-radius: 50%;box-shadow:inset 0px 0px 0px 10px  rgba(255,255,255,.3),2px 2px 2px rgba(0,0,0,.3);position: absolute;//使伪元素脱离文档流定义在img上面 box-shadow  前边一个值定义内圈,后面的一个值定义向外的阴影
	}
	.contener{
		position: relative;
		top: 100px;left: 100px;
		border: 1px solid;
		width: 200px;
		height: 200px;
	}
	.contener a{
		display: block;
		text-decoration: none;

	}
	img{
		width: 100%;height: 100%;
	}
	
	 
	a:hover .wrap{
		/*border-color: #ecab18;
		border-top-color: #1ad280;border-left-color: */
		transform:rotate(-180deg);
		
	}
	.wrapo{
		/*position: absolute;*/
		/*visibility : hidden;*/
		opacity:0;
		z-index: 5;
		text-align: center;
		transition:all 1s ease-in-out;
	}
	
	a:hover .wrapo{
		opacity: 1;
		/*display: block;*/
		
		/*visibility : visible;*/
		background-color: rgba(0,170,0,.3);
		
		transform:translateX(0);
		
	}
html
<div class="contener"><a href="#">
<div class="wrapo"><h3>is it beautiful?</h3>
</div>

<div class="wrap"><img src="5.jpg" alt="" ></div>
</a>
</div>

注意 一旦脱离文档流则在正常文档流之上,不需要设置z-index  所以这里伪元素未设置层高。
3  第3组  wrap边变小变换位置,注意此处选择第二种方法特别好做,html代码量少,可以减少浏览器的渲染。再更新一个我不知道的知识,当边变小变换位置时第一个想到的是transform:translateX(50%);transform:scale(.5,.5); 但实际上只会执行第二条语句,第一条无效,怎么解决?用transform:translateX(50%) scale(.5); 便可以同时变化。 好解决了这条关键的东西,其他就简单了 跟上面一样再变化translateX的正负值,会出现各个效果
4  第4组 在第三组基础上,观察wrap向右移动并且渐渐消失,wrapo向右移动
稍微变化部分的代码如下
css
a:hover .wrap{
		/*border-color: #ecab18;
		border-top-color: #1ad280;border-left-color: */
		transform:translateX(100%);
		opacity: 0;
		
	}
a:hover .wrapo{
		opacity: 1;
		/*display: block;*/
		
		/*visibility : visible;*/
		background-color: rgba(0,170,0,.3);
		
		transform:translateX(0);
		
	}
可是当很快的把鼠标移到wrap时,发现未还原

5 第5组 wrap渐渐变大 直到消失出现.wrap 将wrap与wrapo重叠为了不用考虑二者层级关系,可以这样设置 将wrapo的透明度设为0  待a:hover时再设为1 并且把wrap透明度设为0,这样就不用设置其中一个的position。也可以这样解决,设置二者的z-index值,并且保证wrap在wrapo之上  要这样的话二者都要设置position属性,结果表明,都是可行的 这是第二种hover时不用再去改变wrapo的任何属性,只需要改变wrap即可
html结够如上一样
css
a:hover .wrap{
		transform:scale(1.5);
		opacity: 0;

		
	}
	
	
	a:hover .wrapo{
		opacity: 1;
		
	}
.wrapo{
		
		opacity:0;
		/*z-index: 5;*/
		text-align: center;
		transition:all .3s ease-in-out;
	}

第6组 wrap渐渐变小 当变到一定程度并消失的时候,wrapo才从左边移到到wrap所在的地方,注意是前者消失之后后者才开始运动,故需要为wrapo的运动添加一个延迟,而transition里面恰好有这个设置。把需要延迟时间加到最后即可。transition:all 0.35s ease-in-out 0.1s; 其它跟上面的差不了太多。
7 第8组   每一个图形有两个连续的运动,wrap先变小,再向左平移,可是transform 只能对一个物体设置一种运动或同时有两种运动,所以不能满足要求,现在在它外面套一个盒子包裹它,把这个包裹盒子的运动和它本身的运动结合起来,可以解决这个问题,具体步骤:先让这个包裹盒子缩小为原来的1/2,再将wrap向左边平移(有延迟),代码如下(只设置与动画有关的css)
html
<div class="wrap-container">
<div class="wrap"><img src="5.jpg" alt="" ></div>
</div>
css
.wrap-container{
		border-radius: 50%;transition: all 0.35s ease-in-out;
	}
a:hover .wrap-container{
	transform:scale(.5);

	}
a:hover .wrap{
		transform:translateX(-100%);
		opacity: 0;

		
	}
.wrap{
transition:all 0.35s ease-in-out 0.35s;//有延迟便于使二者的运动连续。
}

wrapo的运动稍复杂一些。 分析一下  试验可知,当一个盒子里面套另一个盒子,并且为两个盒子设置变换效果时,浏览器先为外面盒子设置效果,然后才是里面的,比如让外面盒子缩小里面的盒子平移,那麽他的变换顺序是先变小了再平移,所以假如是一个圆的话那么它的圆心再这个过程中在水平方向上会发生变化,为了避免这样,这样  让外面盒子平移里面的盒子缩小 故初始状态wrapo的css这样设置
css
.wrapo{
transform: scale(.5);
transition:all 0.35s ease-in-out 0.7s;
}
.wrapo-container{
		border-radius: 50%;transition: all 0.35s ease-in-out 0.35s;transform: translateX(100%);opacity:0;//opacity设置在它上面不然,设置在wrapo上市.wrapo-container translatex时看不见元素。
	}
html
<div class="wrapo-container">
<div class="wrapo"><h3>is it beautiful?</h3>
</div>
</div>


运动时,先是wrap变小,然后wrap向左平移,这与wrapo-container平移是同时的,wrapo-container平移完后才是wrapo的变大,故右边元素的运动延迟分别为0.35,0.7 s
所以
a:hover 时的css为
a:hover .wrapo{
		/*opacity: 1;*/
		/*transform:translateX(0);*/
		transform: scale(1);
		
		
	}
a:hover .wrapo-container{
	/*transform: scale(1);*/
	transform: translateX(0);
	opacity: 1;

	}


过程好复杂的说!
第9组 难点在于解决wrap的两个运动 实验可知  translateX  指向图像不转动时的右边(相对于它自己是固定的) 当它转动时x在我们看来也在转动,故现在设置这个动画 transform:translateX(100%) rotate(360deg)在转动时会向四面八方平移,解决方法是外面套一个wrap-container 设置它的平移transform:translateX(100%) 里面的wrap设置为转动,且使其同时运动,此时 wrap同时参与有、自己的转动还有wrap-container的平移
分享到:
评论

相关推荐

    经典3D动画,64k动画合集

    标题中的“经典3D动画,64k动画合集”揭示了一个非常特殊的领域,即如何在极小的数据量下创造具有视觉冲击力的3D动画效果。这通常需要对数据压缩技术有深入的理解,以及对3D建模和渲染的精湛技艺。 首先,64KB...

    Android动画合集

    "Android动画合集"是对这个主题的基础总结,主要涵盖了Android系统中的三种基本动画类型:属性动画、帧动画和补间动画。这些概念对于Android开发者,尤其是初学者来说,是理解和实现动态用户界面的基础。 首先,...

    win7 开机动画合集

    "Win7 开机动画合集"是一个专门针对Windows 7系统收集的各种不同开机动画资源的集合。这个合集允许用户根据个人喜好替换默认的开机动画,以展示个性化的开机体验。 要更改Windows 7的开机动画,你需要了解以下几个...

    属性动画帧动画补间动画合集

    本合集的"属性动画帧动画补间动画合集"是一个演示这些动画类型的实例集合,对于想要深入研究Android动画机制的开发者来说,这是一个非常有价值的资源。 1. **属性动画(Property Animation)**: 属性动画是Android...

    Android应用源码安卓动画合集大全

    这个"Android应用源码安卓动画合集大全"提供了丰富的示例,帮助开发者深入了解和实践Android动画技术。以下将详细阐述其中可能涵盖的知识点: 1. **Android动画类型**: - **视图动画(View Animation)**:这是...

    三国后传FLASH动画合集,里面包含30个动画

    《三国后传FLASH动画合集》是一部以中国历史上的三国时代为背景的动画作品,它通过Flash技术将经典的历史故事以生动、趣味的方式呈现出来。Flash是一种广泛应用于互联网的矢量图形和多媒体创作工具,由Adobe公司开发...

    64K的3D动画合集--史上最全

    优秀的coder可以写出强大而又精巧的demo引擎,一个优秀的coder+优秀的优化编译器+UPX...里面有经典的“彗星撞地球”演示,这个动画的容量超过15G,而现在它的大小被压缩成64K,而且3D效果和声效仍然十分令人震撼!!!

    system_media_bootanimation.zip OTT开机动画合集

    在给定的"system_media_bootanimation.zip OTT开机动画合集"中,我们可以看到几个不同的子文件名,它们代表了不同的开机动画主题: 1. **TBOX**:这可能是指一种特定类型的智能电视或机顶盒(Set-Top Box,简称STB...

    2016年酷炫HTML5动画合集.zip

    2016年的HTML5动画合集展示了这项技术在视觉效果和用户体验方面的巨大潜力。在这个压缩包中,我们可能找到了一系列精心设计的HTML5动画示例,这些示例可能包括动态图形、过渡效果、游戏元素、以及互动界面等多种形式...

    Android应用源码安卓动画合集大全加站长代码库.zip

    这个名为“Android应用源码安卓动画合集大全加站长代码库.zip”的压缩包文件显然包含了大量的Android应用源码,特别是专注于动画实现的示例。这些源码可以帮助开发者深入理解Android动画系统,提升自己的编程技能。 ...

    CSS3 Loading加载动画合集下载.rar

    《CSS3 Loading加载动画合集:打造网页动态之美》 CSS3是 Cascading Style Sheets(层叠样式表)的第三版,它极大地扩展了样式表的功能,为网页设计师提供了丰富的视觉效果和动态交互。其中,Loading 加载动画是...

    Android代码-[安卓开源]安卓动画合集大全加站长代码库.zip

    【Android 动画合集与开源项目解析】 在Android开发中,动画是提升用户体验的关键因素之一,能够使应用更加生动和吸引人。本资源“[安卓开源]安卓动画合集大全加站长代码库.zip”提供了丰富的Android动画示例,帮助...

    2016年酷炫HTML5动画合集

    这个“2016年酷炫HTML5动画合集”正是对那个时代创新成果的精彩展示。 HTML5动画的核心在于其内置的Canvas元素和SVG(Scalable Vector Graphics)图形,这两个特性极大地拓展了网页动态表现的边界。Canvas是一个...

    CSS3加载动画合集下载.zip

    【CSS3加载动画合集下载.zip】是一个包含多种CSS3加载动画效果的资源包,适合网页开发者使用,以提升用户体验并展示数据加载过程中的视觉吸引力。这个合集着重于利用CSS3的新特性来创建动态、流畅且具有现代感的加载...

    (转)Android应用源码安卓动画合集大全

    在“Android应用源码安卓动画合集大全”中,我们可以深入学习和理解Android动画的各种类型和实现方式。 1. **帧动画(AnimationDrawable)** 帧动画是通过连续播放一系列图片来创建动画效果。例如,一个简单的行走...

    种机械设备原理动画合集.zip

    种机械设备原理动画合集.zip

    21个单页PPT动画合集

    21个单页PPT动画合集

    19套青春同学聚会PPT电子相册动画合集

    在IT领域,PPT(PowerPoint)是一种广泛使用的演示文稿软件,用于创建各种报告、演讲、培训材料或像“19套青春同学聚会PPT电子相册动画合集”这样的创意作品。这个合集提供了19个不同设计风格的PPT模板,专门针对...

    安卓动画合集

    "安卓动画合集"这个资源包显然包含了多种类型的动画效果,涵盖了Activity转换、Dialog显示以及闪屏页面等多个应用场景。 首先,我们要理解Activity动画。在安卓系统中,Activity是应用程序的基本组件,用于展示用户...

    Android动画合集之帧动画

    在Android开发中,动画是提升用户体验的关键因素之一。帧动画是一种简单但强大的动画形式,尤其适用于展示一系列连续的图像,比如人物行走、物体旋转等效果。本知识点将深入探讨如何在Android中创建和使用帧动画。 ...

Global site tag (gtag.js) - Google Analytics