CSS3,3D效果轮播图

---恢复内容开始---

大家还记得我昨天的3D拖拽立方体吗??我昨天还说过css还可以做轮播图,所以咱们今天就写一下,css的轮播图吧!

....这个轮播图主要是用CSS3里的transform的旋转属性来完成3D效果的,然后配合原生js的显示隐藏,达到了3D旋转轮播图的效果:

<!DOCTYPE HTML>
<html>

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>3D图片切换1</title>
		<style>
			/*设置一个关键帧*/
			@-webkit-keyframes open {
				0% {
					-webkit-transform: rotateX(180deg);
					opacity: 0;
				}
				57% {
					-webkit-transform: rotateX(-16deg);
					opacity: 1;
				}
				66% {
					-webkit-transform: rotateX(14deg);
				}
				74% {
					-webkit-transform: rotateX(-12deg);
				}
				81% {
					-webkit-transform: rotateX(10deg);
				}
				87% {
					-webkit-transform: rotateX(-8deg);
				}
				92% {
					-webkit-transform: rotateX(6deg);
				}
				96% {
					-webkit-transform: rotateX(-4deg);
				}
				100% {
					-webkit-transform: rotateX(0deg);
				}
			}

			@-webkit-keyframes clos {
				0% {
					-webkit-transform: rotateX(0deg);
					opacity: 1;
				}
				100% {
					-webkit-transform: rotateX(-180deg);
					opacity: 0;
				}
			}

			body {
				background: #eee;
			}

			.box {
				width: 600px;
				height: 400px;
				position: relative;
				margin: 30px auto;
			}

			/*按钮*/

			#prev,
			#next {
				width: 50px;
				height: 50px;
				background: #efefef;
				border-radius: 25px;
				position: absolute;
				top: 100px;
				box-shadow: 2px 2px 10px #666;
				text-align: center;
				font-size: 40px;
				line-height: 50px;
				font-family: Verdana, Geneva, sans-serif;
				text-decoration: none;
				color: #fff;
				-webkit-text-stroke: 2px #ccc;
			}

			#prev {
				left: -100px;
			}

			#next {
				right: -100px;
			}
			/*图片区*/
			#imgs {
				width: 600px;
				height: 400px;
				position: relative;
				-webkit-transform-style: preserve-3d;
				-webkit-perspective: 1000px;
			}
			/*图片*/
			#imgs img {
				width: 600px;
				height: 400px;
				position: absolute;
				left: 0;
				top: 0;
				-webkit-transform-origin: bottom;
				-webkit-transform: rotateX(-180deg);
				opacity: 0;
			}
			/*设置显示和隐藏后的样式*/
			#imgs .show {
				-webkit-animation: open 1.2s ease-in;
				-webkit-transform: rotateX(0deg);
				opacity: 1;
			}

			#imgs .hide {
				-webkit-animation: clos 1s ease;
				-webkit-transform: rotateX(-180deg);
				opacity: 0;
			}
		</style>
		<script>

			window.onload = function() {
				//要用到的元素获取元素
				var oPrev = document.getElementById("prev");
				var oNext = document.getElementById("next");
				var aImg = document.getElementsByTagName("img");
				var iNow = 0;
				//上一页点击事件
				oPrev.onclick = function() {

					aImg[iNow].className = "hide";
					iNow--;
					if(iNow < 0) {
						//判断全局变量
						iNow = aImg.length - 1;
					}
					aImg[iNow].className = "show";
				};
				//下一页点击事件
				oNext.onclick = function() {
					aImg[iNow].className = "hide";
					iNow++;
					if(iNow == aImg.length) {
//					如果全局变量和长度相等,就变回第一张,造成视觉循环的假象
						iNow = 0;
					}
					aImg[iNow].className = "show";
				};
			}
		</script>
	</head>

	<body>
		<div class="box">
			<!--上一页-->
			<a href="#" id="prev"><</a>
			<div id="imgs">
				<img src="img/img1.jpg"  class="show" />
				<img src="img/img2.jpg"  />
				<img src="img/img3.jpg"  />
				<img src="img/img4.jpg"  />
				<img src="img/img5.jpg"  />
			</div>
			<!--下一页-->
			<a href="#" id="next">></a>
		</div>
	</body>
</html>

  不知道你们学会了吗???很简单哦!

---恢复内容结束---

时间: 2024-10-08 10:30:34

CSS3,3D效果轮播图的相关文章

css3实现3D切割轮播图案例

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>CSS3 3D切割轮播图</title> <style> body { margin: 0; padding: 0; } ul { margin: 0; padding: 0; list-style: none; height: 100%; wi

jquery 实现3d切割轮播图

总结: 1.布局时4张图片分别为一个立体长方体的4个侧面,屏幕为该长方体的几何中心. 2.注意点击左按钮,显示上一张图片,沿X轴旋转的是 90deg,  右按钮,则为 90deg   3.切割效果通过li过渡延时来实现,通过节流阀控制过渡完成的时间点,也就是下次点击事件可以触发的时间点.  效果图:       1.html: <!--3d立体轮播图--><section class="box"> <ul class="imageBox"

带锁的3D切割轮播图

3D切割轮播图. 加入锁,限制点击太快次数 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> body{ margin: 0; padding: 0; } .view{ width: 560px; height: 300px; border: 1px solid #

【前端】javascript+jQuery实现旋转木马效果轮播图slider

实现效果: 实现原理: 技术栈: javascript+jQuery+html+css 实现步骤: // 0. 获取元素 // 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏 // 2. 为两侧控制按钮绑定事件(调用同一个方法,只有一个参数,true为正向旋转,false为反向旋转) 实现代码: <!DOCTYPE html> <html> <head> <title>旋转木马效果轮播图</title> <meta charset

jQuery淡入淡出效果轮播图

用JavaScript做了平滑切换的焦点轮播图之后,用jQuery写了个简单的淡入淡出的轮播图,代码没有做优化,html结构稍微有一些调整,图片部分用ul替换了之前用的div. html结构如下: <div id="container"> <ul class="pic"> <li><a href="javascript:;"><img src="DSC01627.jpg"

轮播图---左右切换无长滚动效果轮播图-中级难度版

左右切换无长滚动轮播图思路:首先设有全局变量position(确定当前图片是第几张),arr数组:存放图片地址,方向:direction, 及lis小圆点数组,prev,记录小圆点的前一个, moveBool是否进入运动函数等1.点击事件:点击左边的leftBn,设置direction="right",position--,在这要确定position不能超出数组长度范围, 超出要重新赋值,点击小圆点把小圆点的当前是lis数组中的第几个赋值给position,然后图片生成2.图片生成:图

css3实现3D动画轮播图

这个感觉有点水,只是一个很简单的css3的3D动画,不过对于不会的人来说,应该还是蛮能唬人的吧,哈. 原理很简单,老规矩,都在注释里面,可以直接复制走代码,粘贴 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; marg

3D切割轮播图

预览图: 实现原理:将图片切割构建一个和ul(电脑屏幕)同一个轴的立方体,利用延时旋转实现切割效果 知识点:transform-style属性(必须搭配transform属性使用) 值 描述 flat 子元素将不保留其 3D 位置. preserve-3d 子元素将保留其 3D 位置. 节流阀,transitionend 空间布局: 将一张图片分成五份li,每份li放4个span折叠成正方体 轴:轴是整个立方体左右面中心的连线 代码: 1 <!DOCTYPE html> 2 <html

js小效果-轮播图

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0; padding: 0; list-style: none; } #wrap{ width:500px; height:260px; margin:50px auto; position:r