HTML CSS动画实现图片过渡与变换

一、CSS过渡与变换效果

需要实现过渡和变换效果时,使用CSS动画是一种常见的方法。CSS动画允许我们在元素上应用一系列的动画效果,从而创建出流畅和引人注目的过渡和变换效果。

1. `transition`属性:通过指定过渡的属性、持续时间和过渡函数,我们可以实现元素属性的平滑过渡。在例子中,我们使用了`transition: all 1s ease-in-out;`将所有属性的过渡效果设置为1秒,并且使用了`ease-in-out`过渡函数,使过渡效果更加平滑。

2. `transform`属性:通过指定元素的变换操作,我们可以实现元素的旋转、缩放、平移等变换效果。在例子中,我们使用了`transform: rotate(360deg);`将元素绕中心点旋转360度,从而实现了旋转效果。

案例源码


<!DOCTYPE html>
<html>
<head>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: red;
            transition: all 1s ease-in-out;
            animation: rotate 2s infinite;
        }

        @keyframes rotate {
            0% {
                transform: rotate(0deg);
            }
            100% {
                transform: rotate(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="box"></div>

    <script>
        // JavaScript代码
    </script>
</body>
</html>

案例效果图

这个案例效果使用了`@keyframes`规则来定义了一个动画序列。通过指定动画的关键帧(0%和100%),定义动画在不同时间点的样式。设置了0%时元素的旋转角度为0度,100%时元素的旋转角度为360度,从而实现了无限旋转的效果。

二、学校官网网页

案例源码

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>学校官网网页</title>
	<style>
		/* 重置默认样式 */
		* {
			margin: 0;
			padding: 0;
		}

		/* 导航栏容器 */
		.container {
			height: 70px;
			background-color: #9a3032;
			width: 100%;
		}

		/* 导航栏项 */
		.nav-item {
			float: left;
			color: white;
			height: 40px;
			line-height: 70px;
			margin-left: 20px;
			padding-left: 5px;
			padding-right: 5px;
			position: relative;
		}

		/* 鼠标悬停效果 */
		.nav-item:hover {
			background-color: white;
			color: #9a3032;
		}

		/* 下拉菜单容器 */
		.dropdown {
			display: none;
			position: absolute;
			width: 300px;
			padding: 10px;
			left: 0;
		}

		/* 鼠标悬停显示下拉菜单 */
		.nav-item:hover .dropdown {
			display: block;
		}

		/* 下拉菜单项 */
		.dropdown ul {
			list-style: none;
		}

		.dropdown ul li {
			color: black;
			line-height: 28px;
			margin-left: 15px;
			font-size: 15px;
		}

		.dropdown ul li::before {
			display: inline-block;
			width: 8px;
			height: 8px;
			border-radius: 50%;
			background-color: #9a3032;
			content: "";
			margin-right: 10px;
		}

		/* 拉伸导航栏宽度 */
		.container .frist_div {
			width: 1500px;
		}

		/* 下拉菜单容器宽度 */
		.container .frist_div .dropdown {
			width: 400px;
		}
	</style>
</head>
<body>
	<div class="container">
		<div class="frist_div">
			<div class="nav-item">首页</div>

			<div class="nav-item">
				学校概况
				<div class="dropdown">
					<img src="subnav-img.png" />
					<ul>
						<li>学校简介</li>
						<li>校长寄语</li>
						<li>学校领导</li>
						<li>学校风光</li>
						<li>学校标识</li>
					</ul>
				</div>
			</div>

			<div class="nav-item">
				组织机构
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>党群机构</li>
						<li>行政部门</li>
						<li>二级学院</li>
					</ul>
				</div>
			</div>

			<div class="nav-item">
				党群组织
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>党委介绍</li>
						<li>党员之家</li>
						<li>党建活动</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				教育教学
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>本科教育</li>
						<li>职业教育与继续教育</li>
						<li>教研与科研</li>
						<li>教学动态</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				国际教育
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>国际交流中心</li>
						<li>国际教育学院</li>
						<li>国际联合培养</li>
						<li>英才计划</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				校园生活
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>校园设备</li>
						<li>教学设施</li>
						<li>餐饮服务</li>
					</ul>
					<div>
						<ul>
							<li>住宿服务</li>
							<li>网络服务</li>
							<li>综合服务</li>
						</ul>
					</div>
				</div>
			</div>
			
			<div class="nav-item">
				学生服务
				<div class="dropdown">
					<img src="subnav-img.png" alt="" />
					<ul>
						<li>学工动态</li>
						<li>学生会</li>
						<li>学生自助</li>
						<li>心理健康</li>
						<li>资料下载</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				招生就业
				<div class="dropdown">
					<img src="img/1.png" alt="" />
					<ul>
						<li>招生网</li>
						<li>就业网</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				人才招聘
				<div class="dropdown">
					<img src="img/1.png" alt="" />
					<ul>
						<li>招聘公告</li>
						<li>联系我们</li>
					</ul>
				</div>
			</div>
			
			<div class="nav-item">
				校友会
			</div>
		</div>
	</div>
</body>
</html>

案例效果图

使用CSS动画实现过渡和变换效果可以:

1. 硬件加速:CSS动画可以利用浏览器的硬件加速功能,使动画更加流畅和高效。这意味着动画会在GPU上进行处理,而不是在CPU上,可以提供更好的性能和更少的卡顿。

2. 简单易用:使用CSS动画非常简单,只需通过CSS属性和关键帧来定义动画效果即可。无需编写复杂的JavaScript代码,减少了开发的复杂性和工作量。

3. 性能优化:CSS动画是基于浏览器的渲染引擎实现的,因此可以进行更好的性能优化。浏览器可以根据需要优化和合并动画,从而减少对CPU和内存的使用,提高页面的响应速度和性能。

4. 跨浏览器兼容性:CSS动画在现代浏览器中得到广泛支持,并且可以通过添加浏览器前缀来兼容旧版浏览器。这使得开发者可以在不同的浏览器中实现一致的过渡和变换效果,而无需担心兼容性问题。

5. 可控性和可重用性:CSS动画允许我们对动画进行精确的控制,包括动画的持续时间、过渡函数、延迟等。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现HTML图片重叠变换,可以使用CSS中的`z-index`属性和`position`属性来控制图片的层叠顺序和位置。具体实现过程如下: 1. 将所有图片的`position`属性设置为`absolute`,这样图片就可以脱离文档流,方便控制位置和层叠顺序。 2. 将所有图片的`z-index`属性设置为相同的值,这样它们就处于同一层级,可以让它们互相重叠。 3. 给每个图片设置不同的`left`或`right`值,来使它们的位置不同。 4. 使用CSS3的`transition`属性和`transform`属性来实现图片变换效果,比如旋转、平移等。 实现无缝无限循环展示效果,可以采用CSS3的`animation`属性,通过不断地改变图片的位置和透明度,来实现循环展示的效果。具体实现过程如下: 1. 定义一个`@keyframes`规则,用来描述图片的动画效果。在这个规则中,可以定义图片的位置、透明度等属性,以及动画的持续时间、延迟时间、重复次数等参数。 2. 将图片的`animation`属性设置为定义好的`@keyframes`规则,可以控制图片的动画效果。 3. 为了实现无限循环展示,需要将多个图片按照一定的顺序排列,并且让它们不断地重复播放动画。 下面是一个HTML图片重叠变换CSS无限循环展示效果的示例代码: ```html <!DOCTYPE html> <html> <head> <title>HTML图片重叠变换CSS无限循环展示效果</title> <style type="text/css"> .container { position: relative; width: 500px; height: 500px; margin: 0 auto; overflow: hidden; } .container img { position: absolute; top: 0; left: 0; z-index: 1; transition: all 1s ease-in-out; transform-origin: center center; } .container img:nth-child(2) { left: 100px; z-index: 2; transform: rotate(45deg); } .container img:nth-child(3) { left: 200px; z-index: 3; transform: rotate(90deg); } .container img:nth-child(4) { left: 300px; z-index: 4; transform: rotate(135deg); } .container img:nth-child(5) { left: 400px; z-index: 5; transform: rotate(180deg); } .container:hover img { transform: rotate(360deg); } .animation-container { position: relative; width: 500px; height: 500px; margin: 0 auto; overflow: hidden; } .animation-container img { position: absolute; top: 0; left: 0; animation: slide 10s linear infinite; } .animation-container img:nth-child(2) { left: 100%; animation-delay: -8s; } .animation-container img:nth-child(3) { left: 200%; animation-delay: -6s; } .animation-container img:nth-child(4) { left: 300%; animation-delay: -4s; } .animation-container img:nth-child(5) { left: 400%; animation-delay: -2s; } @keyframes slide { 0% { transform: translateX(0%); opacity: 1; } 25% { transform: translateX(-100%); opacity: 0.5; } 50% { transform: translateX(-200%); opacity: 0.2; } 75% { transform: translateX(-300%); opacity: 0.5; } 100% { transform: translateX(-400%); opacity: 1; } } </style> </head> <body> <h2>HTML图片重叠变换</h2> <div class="container"> <img src="image1.jpg"> <img src="image2.jpg"> <img src="image3.jpg"> <img src="image4.jpg"> <img src="image5.jpg"> </div> <h2>CSS无限循环展示效果</h2> <div class="animation-container"> <img src="image1.jpg"> <img src="image2.jpg"> <img src="image3.jpg"> <img src="image4.jpg"> <img src="image5.jpg"> </div> </body> </html> ``` 在这个示例代码中,`.container`类表示HTML图片重叠变换的容器,`.animation-container`类表示CSS无限循环展示效果的容器。其中,`.container`类和`.animation-container`类的样式设置有些不同。 在`.container`类中,将所有图片的`position`属性设置为`absolute`,并设置它们的`left`值,使它们呈现出重叠的效果。同时,给所有图片设置过渡效果和旋转效果,当鼠标悬停时可以触发旋转效果。 在`.animation-container`类中,将所有图片的`position`属性设置为`absolute`,并设置它们的`left`值,使它们呈现出水平排列的效果。同时,通过`animation`属性将所有图片绑定到同一个动画,不断地播放循环动画。其中,`.animation-container img:nth-child(n)`选择器可以用来为每个图片设置不同的延迟时间,实现无限循环展示的效果。 通过这个示例代码,可以了解到如何使用HTMLCSS实现图片重叠变换和无限循环展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值