transition 过渡效果

过渡效果 只针对特定的数值有效,针对某些属性值(block),是无效的。

过渡:
可以在不适用flash动画或JavaScript的情况下,当元素从1中样式变化成另一种样式时,为元素添加效果。要实现这一点,必须规定两项内容:
1.规定希望把效果添加到那个css属性上,
2.规定效果的时长。
语法:transition:property |duration |timing-function |delay;
property:规定设置过渡效果的css属性的名称。
duration:规定设置过渡效果需要多少秒或毫秒。
timing-function:规定速度效果的速度曲线。
delay:定义过渡效果何时开始执行。

<html>
	<head>
		<meta charset="utf-8">
		<title>过渡01</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			div {
				width: 100px;
				height: 100px;
				background-color: red;
				position: absolute;
				left: 10px;
				top: 10px;
				/* 添加过渡效果: 过渡效果执行完后,默认会回到原始状态。 */
				/* 1.property 添加过渡效果的样式属性名称 */
				/* transition-property: left; */
				/* 2.过渡效果耗时 */
				/* transition-duration: 2s;
				transition-timing-function: ease-in;
				transition-delay: 1s; */
				/* 简写:transition:属性名  过渡时间  时间函数  延迟 */
				/* transition: left 2s linear 2s; */
				/* 为多个样式同时添加过渡效果 */
				/* transition:left 2s linear 0s, background-color 2s linear 0s; */
				
				/* 为所有样式添加过渡效果
				 1.所有样式的过渡效果一样
				 2.效率低下,它会去查询所有添加的样式,
				 建议不要这么写。使用上面多个样式同时添加效果的样式处理。
				 3.stpe(4):可以让过渡效果分为指定的几步来完成, 但是很多浏览器不支持。
				 */
				transition: all 2s steps(4);
				/* 兼容适配不同的浏览器 */
				-moz-transition:  all 2s steps(4);
				-webkit-transition:  all 2s steps(4);
				-moz-transition:  all 2s steps(4);
			}
			/* 单击事件, 需要一直按着div */
			div:active {
				left: 1000px;
				background-color: #008000
			}
		</style>
	</head>
	<body>
		<div></div>
	</body>
</html>

========================

手风琴下拉菜单效果

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>手风琴下拉菜单效果</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}

			.menu {
				width: 200px;
				height: auto;
				margin: 100px auto;
			}

			.item {
				width: 100%;
				height: auto;
			}

			.item>h3 {
				height: 40px;
				line-height: 40px;
				background-color: #7dffe7;
				color: orange;
				padding-left: 10px;
				border-bottom: 2px solid #CCCCCC;
			}

			.item>.itemBox {
				width: 100%;
				height: 0px;
				/* 默认隐藏数据*/
				overflow: hidden;
				/* display: none; */
				/* 添加过渡效果:过渡效果智能产生从某个具体值,到另外一个具体的值的过渡 
				无法为一些状态值添加过渡效果,只能给具体的值 添加过渡效果。*/
				/* 1 为那些设置css样式添加过渡效果, 2 耗时 */
				transition-property: height;
				transition-duration: 1s;
			}

			.item>.itemBox>ul {
				list-style: none;
				background-color: #eaffb6;
				padding: 15px;
				margin: 0;
			}

			/* h3:hover >.itemBox{} */
			/* 为item添加hover伪类 */
			.item:hover>.itemBox {
				/* display: block; */
				/* 显示子菜单*/
				height: 110px;
			}
		</style>
	</head>
	<body>
		<div class="menu">
			<div class="item">
				<h3>国内新闻</h3>
				<div class="itemBox">
					<ul>
						<li>深圳好地方</li>
						<li>深圳房价高</li>
						<li>深圳有华为</li>
						<li>深圳ZTE总部在那边</li>
					</ul>
				</div>
			</div>
			<div class="item">
				<h3>国际新闻</h3>
				<div class="itemBox">
					<ul>
						<li>金三胖坐绿皮</li>
						<li>特朗普狗似的</li>
						<li>打倒小日本</li>
						<li>国际新闻3</li>
					</ul>
				</div>
			</div>

			<div class="item">
				<h3>体育新闻</h3>
				<div class="itemBox">
					<ul>
						<li>宁泽涛退役了。</li>
						<li>姚明砍下40分</li>
						<li>阿联坐火车</li>
						<li>C罗不踢球</li>
					</ul>
				</div>
			</div>

			<div class="item">
				<h3>娱乐新闻</h3>
				<div class="itemBox">
					<ul>
						<li>杨幂看小孩</li>
						<li>周杰伦唱歌</li>
						<li>沙发</li>
						<li>发电房</li>
					</ul>
				</div>
			</div>
		</div>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/xqiitan/article/details/88313729