`
sarin
  • 浏览: 1756915 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:173657
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:368124
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:189261
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:99838
社区版块
存档分类
最新评论

HTML5/CSS3翻转动画(一)

阅读更多
    翻转动画效果,就是将页面的元素(文字,图片)加入围绕坐标轴翻转的效果,在Webkit内核的浏览器中,很容易实现。而其它内核暂时支持不是很好。首先,我们创建页面:
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="js/jquery.js"></script>
	<title>Flip Text</title>
</head>
<body>
<div id="cover">
	<div id="coverText">
		<div id="welcomeStr1">Welcome To HTML5!</div>
		<div id="welcomeStr2">Hello World!</div>
	</div>
</div>
</body>

    代码很简单,其中仅包含两个文本信息用于测试。引入jQuery是为了后面的事件绑定,我们使用CSS3的动画支持来展示,那么下面来逐一看看CSS代码:
*{
    margin:0px;
    padding:0px;
}
#cover{
    position:absolute;
    width:100%;
    height:100%;
    min-width: 768px;
    overflow: hidden;
    background: -webkit-gradient(linear,left top, left bottom, color-stop(0, #00BDF2), color-stop(1, #003D7B));
    background: -moz-linear-gradient(top,#00BDF2, #003D7B);
}

    这段很简单,就是设置页面背景色的。这里可以在FF中看到效果。下面是对文本的CSS支持:
#coverText {
    position: absolute;
    left: 18%;
    top: 30%;
	width:64%;
	text-align:center;
}
#welcomeStr1,#welcomeStr2 {
	height: 86px;
	font-size: 64px;
	line-height: 86px;
	letter-spacing: 2px;
	color: white;
	font-family:"Courier New";
	-webkit-animation-time-function: linear;
}

    目前我们得到如下效果:

    下面设置让文字翻转的CSS3动画:
@-webkit-keyframes flip {
	0% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
	70% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
	100% {
		-webkit-transform: rotateY(90deg) scale(0.6,0.7);
		color: #3C4043;
	}
}

    该段代码的含义是,围绕y轴翻转文字,并在最后文字大小发生变化,并变色。当然如果想沿着x轴旋转,那么使用rotateX就可以了,这很简单。现在在CSS中补加如下代码:
	-webkit-animation: flip 5s infinite;
	-webkit-text-size-adjust: none;

    我们可以看到的效果是文字围绕y轴主键变小,并变色,最终合并到y轴,但突然还原。这个效果是没错的,因为我们只有前半部分的动画效果,而后半部分翻转回来的没有设置,也就是我们看到的主键消失但突然出现的效果了。下面继续设置CSS动画,因为翻转过去了还得翻转回来吧:
@-webkit-keyframes unflip {
	0% {
		-webkit-transform: rotateY(90deg) scale(0.6,0.7);
		color: #3C4043;
	}
	100% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
}

    那么翻转回来我们定义名称为unfilp,此时不设置70%的停顿延时,直接翻转回来即可。我们看到,0%时是和上面flip中100%接上的,scale和color都是一致的。而100%是和flip中0%对应的,那么就可以达到还原的效果了。
    此时可以修改-webkit-animation来测试这一步的效果。
    好,现在问题来了,我们设置了两个CSS动画,那么怎么应用可以按顺序来执行呢,写到-webkit-animation中使用多个动画效果,好像不支持,或许是我写的不对。那么只好借助js来简单实现了。也就是事件绑定。Webkit中有个事件是webkitAnimationEnd,我们可以将两个动画绑定到这个事件上,就可以达到自动按顺序执行。我们编写一个js函数来达到这个效果:
flip = function(element, flipName, flipTime, unflipName, unflipTime) {
	if(!element){
		return;
	}
	element.style.webkitAnimation = "" + flipName + " " + flipTime;
	return $(element).bind('webkitAnimationEnd', function() {
		switch (element.style.webkitAnimationName) {
			case flipName:
				return element.style.webkitAnimation = "" + unflipName + " " + unflipTime;break;
			case unflipName:
				return element.style.webkitAnimation = "" + flipName + " " + flipTime;break;
		}
	});
};

    flip函数定义功能如下:首先判断一下element,当然可以不做,只要在调用的时候保证即可。然后给webkitAnimation赋值,就是我们定义的CSS动画名称和执行的时间。下面就是核心功能所在了。巧妙使用事件绑定和switch的返回机制。将webkitAnimationEnd按照filp动画的名称进行绑定。这里格外注意,element.style.webkitAnimation = "" + flipName + " " + flipTime;一句绑定了正向翻转的CSS动画和时间,那么为了有反向的效果,下面的Switch段是相反的,也就是case filpName时进行unflip动画。
    写好了js函数,那么我们来调用:
$(function() {
    flip($("#welcomeStr1")[0], 'flip', '1.5s', 'unflip', '0.7s');
    flip($("#welcomeStr2")[0], 'flip', '1.5s', 'unflip', '0.7s');
});

    我们把两个文本段绑定flip执行1.5秒,unflip执行0.7秒。最终我们就可以看到翻转的文字效果了:

    我们截取到一个翻转中的效果,大家可以使用webkit内核的浏览器来进行测试,就可以看到连续的翻转效果了。
    此时两个文本段的动画效果是同步的,因为我们设置的时间都是一样的,如果想不同步,修改时间就可以了,这样就能根据自己的需求来确定了。
    最后附上本文整体代码,jQuery的库那就自行去添加吧:
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="js/jquery.js"></script>
	<title>Flip Text</title>
<style>
*{
    margin:0px;
    padding:0px;
}
#cover{
    position:absolute;
    width:100%;
    height:100%;
    min-width: 768px;
    overflow: hidden;
    background: -webkit-gradient(linear,left top, left bottom, color-stop(0, #00BDF2),color-stop(1, #003D7B));
    background: -moz-linear-gradient(top,#00BDF2, #003D7B);
}
#coverText {
    position: absolute;
    left: 18%;
    top: 30%;
	width:64%;
	text-align:center;
}
#welcomeStr1,#welcomeStr2 {
	height: 86px;
	font-size: 64px;
	line-height: 86px;
	letter-spacing: 2px;
	color: white;
	font-family:"Courier New";
	-webkit-animation-time-function: linear;
}

@-webkit-keyframes flip {
	0% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
	70% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
	100% {
		-webkit-transform: rotateY(90deg) scale(0.6,0.7);
		color: #3C4043;
	}
}
@-webkit-keyframes unflip {
	0% {
		-webkit-transform: rotateY(90deg) scale(0.6,0.7);
		color: #3C4043;
	}
	100% {
		-webkit-transform: rotateY(0deg) scale(1,1);
		color: white;
	}
}
</style>
<script type="text/javascript">
flip = function(element, flipName, flipTime, unflipName, unflipTime) {
	if(!element){
		return;
	}
	element.style.webkitAnimation = "" + flipName + " " + flipTime;
	return $(element).bind('webkitAnimationEnd', function() {
		switch (element.style.webkitAnimationName) {
			case flipName:
				return element.style.webkitAnimation = "" + unflipName + " " + unflipTime;break;
			case unflipName:
				return element.style.webkitAnimation = "" + flipName + " " + flipTime;break;
		}
	});
};

$(function() {
    flip($("#welcomeStr1")[0], 'flip', '1.5s', 'unflip', '0.7s');
    flip($("#welcomeStr2")[0], 'flip', '1.5s', 'unflip', '0.7s');
});
</script>
</head>
<body>
<div id="cover">
	<div id="coverText">
		<div id="welcomeStr1">Welcome To HTML5!</div>
		<div id="welcomeStr2">Hello World!</div>
	</div>
</div>
</body>

   本文谨抛砖引玉的介绍,欢迎交流,希望对使用者有用。
    下一篇我们继续来深入探讨HTML5/CSS3的简单动画。
  • 大小: 30.7 KB
  • 大小: 23.5 KB
4
0
分享到:
评论

相关推荐

    HTML5/CSS3翻转动画(二)

    在“HTML5/CSS3翻转动画(二)”这一主题中,我们将深入探讨如何利用这两种技术创建出引人入胜的翻转动画效果。 首先,HTML5新增了许多元素,如`&lt;article&gt;`、`&lt;section&gt;`和`&lt;figure&gt;`等,这些元素为结构化文档提供...

    HTML5 3D立方体按钮动画翻转特效.zip

    &lt;title&gt;HTML5 3D立方体按钮动画翻转特效&lt;/title&gt; &lt;link rel="stylesheet" type="text/...这是一款在鼠标滑过按钮时,按钮会3D旋转到另外一个面上,显示不同的内容的HTML5 3D立方体按钮动画翻转特效。

    html5 css3仿谷歌卡片翻转动画特效

    这个例子展示了如何使用HTML5和CSS3创建一个基本的谷歌卡片翻转动画。在实际项目中,你可能需要根据具体需求调整样式和动画效果,例如添加阴影、边框或者自定义动画时长。通过不断实践和优化,你可以创造出更加生动...

    CSS3鼠标滑过翻转动画图标

    今天要分享的是一款CSS3鼠标滑过翻转动画图标,当我们将鼠标滑过图标时,图标中的小图案就会发生翻转。另外它还有一个特点是随着页面大小的变化,图标的尺寸也会自动适应屏幕的大小,这款CSS3小图标也比较适合用作...

    HTML5/CSS3可折叠的3D立方体动画

    最近我们已经为大家分享过很多基于HTML5和CSS3的立方体动画,比如HTML5多立方体3D翻转动画和HTML5 3D立方体图片切换动画,效果都非常惊人。今天要给大家带来另外一款CSS3 3D立方体动画,尤其在DEMO2中可以看到,鼠标...

    css3 3d翻转动画效果-简单的css3翻转动画效果代码

    在CSS3中,3D翻转动画效果是利用先进的CSS3转换(transform)和过渡(transition)属性来创建的一种动态视觉效果。这种效果可以应用于网页元素,如卡片、按钮、图片等,为用户界面增添立体感和交互性。在本案例中,...

    HTML5 3D图片阴影翻转动画

    HTML5是一种强大的网页开发技术,它为...HTML5 3D图片阴影翻转动画不仅展示了HTML5和CSS3的强大能力,也为我们提供了一种创新的方式来呈现和交互内容。无论是网站设计还是移动应用,这样的技术都能让页面更加生动有趣。

    HTML5/CSS3实现旋转图片播放焦点图 旋转比较流畅

    HTML5焦点图可以实现很多炫酷的效果,就像这...今天我们再来分享一款另外一种效果的HTML5焦点图插件,该焦点图利用CSS3的属性实现了图片旋转的动画效果,既可以顺时针旋转,也可以逆时针旋转,并且图片旋转也比较流畅。

    html5 css3文字翻转动画效果.zip

    在本案例中,“html5 css3文字翻转动画效果”是一个利用这两种技术创建的3D立体文字翻转动画效果。这个效果可以为网页增添动态视觉效果,吸引用户的注意力,提升用户体验。 首先,HTML5是超文本标记语言的最新版本...

    CSS3 3D翻转卡片动画

    综上所述,CSS3 3D翻转卡片动画是一种富有创意的网页设计技术,它利用了CSS3的强大力量,为用户提供了一个直观且互动的视觉体验。通过掌握和实践这些知识,你可以为自己的网站或应用增添更多亮点。

    html5+css3文字翻转动画效果.zip

    在这个名为“html5+css3文字翻转动画效果”的压缩包中,我们可以预见到一个利用HTML5的语义化元素和CSS3的动画特性来实现的文字翻转效果。 首先,HTML5引入了新的标签,如`&lt;article&gt;`, `&lt;section&gt;`, `&lt;header&gt;`, `...

    CSS3 3D折叠翻转文字动画

    今天我们再来分享一款CSS3文字特效应用,和之前分享的这款HTML5/CSS3文字特效类似,它也是一款CSS3 3D折叠翻转文字动画,只要将鼠标滑过文字,文字的另一面即可像翻页一样翻转开来,呈现3D立体的视觉效果,这一切都...

    纯CSS3实现可感知方向的卡片翻转动画

    3. **CSS翻转效果**:为`.card`添加一个过渡效果,指定翻转时的属性(这里是`transform`)和时间,然后为`.back`设置一个初始的翻转角度,如`rotateY(180deg)`,使其默认位于背面。 ```css .card { transition: ...

    html5酷炫3D图片翻转动画切换特效

    综合以上知识点,"html5酷炫3D图片翻转动画切换特效"是一个综合性的项目,它将HTML5的新特性与CSS3和JavaScript紧密结合,创造出吸引人的用户体验。实现这样的效果需要对这些技术有深入的理解,并且能够在实际项目中...

    css3悬停图片3D翻转动画显示文字代码

    本示例“css3悬停图片3D翻转动画显示文字代码”利用了CSS3的3D变换功能,创建了一个创新且吸引用户的交互式元素。这个效果在用户将鼠标悬停在图片上时,图片会执行一个3D翻转动画,逐渐淡出并展示隐藏的文字内容。 ...

    html5和css3炫酷图片3d翻转多米诺动画特效

    在这款"html5和css3炫酷图片3d翻转多米诺动画特效"中,开发者充分利用了这两种技术的优势,为移动设备定制了一个极具视觉冲击力的动画效果。 HTML5作为超文本标记语言的最新版本,它引入了许多新的元素和API,旨在...

    jQuery html5 css3图片翻转特效_水平垂直360°

    5. **JavaScript事件处理**: 在这个特效中,可能使用JavaScript监听用户的鼠标点击或悬停事件,触发CSS3的翻转动画。例如,`$(element).click(function() {...})`可以监听点击事件,而`$(element).hover(function() ...

    HTML5响应式3D翻转动画.zip

    HTML5响应式3D翻转动画是现代网页设计中一种引人注目的视觉效果,它利用HTML5的新特性,如CSS3和JavaScript,为用户提供了一种动态、交互式的浏览体验。这种技术允许元素在用户交互时进行三维空间的翻转,从而创造出...

    利用html5/css3实现各种3D特效

    在实际应用中,可以结合HTML5和CSS3的3D特性创建各种特效,如旋转木马、3D卡片翻转、3D轮播图等。例如,可以使用`&lt;canvas&gt;`和WebGL构建一个3D场景,然后通过CSS3的3D转换让这个场景在页面中以特定方式呈现,或者与...

Global site tag (gtag.js) - Google Analytics