3D划桨效果,效果请看gif图

这篇具有很好参考价值的文章主要介绍了3D划桨效果,效果请看gif图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  纯本地文件的html

3D划桨效果,效果请看gif图,css,css3,css,html文章来源地址https://www.toymoban.com/news/detail-800943.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>please enter your title</title>
	<style type="text/css">
		*{
			margin:0;
			padding:0;
		}
		body{
			text-align:center;
		}
		li{
			list-style:none;
		}
		#box{
			position:relative;
			width:1050px;
			height:360px;
			margin:100px auto 20px;
		}
		#box ul li{
			position:absolute;
			left:0;
			top:0;
			width:1050px;
			height:360px;
			display:none;
		}
		#show{
			position:absolute;
			left:0;
			top:0;
			width:1050px;
			height:360px;
			perspective:1000px;
			display:none;
		}
		#show div{
			position:relative;
			width:525px;
			height:72px;
			/*background:red;*/
			float:left;
			transform-style:preserve-3d;
		}
		#show div em{
			position:absolute;
			left:0;
			top:0;
			display:block;
			width:525px;
			height:72px;
		}
		#show div .em1{/*木板的前面*/
			background:url("images/1.png");
			transform:translateZ(5px);
		}
		#show div .em2{/*木板的后面*/
			background:url("images/2.png");
			transform:translateZ(-5px) rotateX(-180deg);
		}
		#show div span{
			position:absolute;
			right:0;
			bottom:0;
			background:#999;
		}
		#show div span.span1{
			width:10px;
			height:72px;
			transform-origin:right;
			transform:translateZ(5px) rotateY(-90deg);
		}
		#show div span.span2{
			width:525px;
			height:10px;
			transform-origin:bottom;
			transform:translateZ(5px) rotateX(90deg);
		}
		#show div.div2 .span1{
			left:0;
			transform-origin:left;
			transform:translateZ(5px) rotateY(90deg);
		}
		/*规定左边div的旋转特效*/
		@keyframes move1{
			0%{
				transform:rotateX(0deg) rotateZ(0deg) rotateY(0deg);
				animation-timing-function:ease;/*运动速度曲线*/
			}
			60%{/*先将木板立起来*/
				transform:rotateX(0deg) rotateZ(0deg) rotateY(-60deg);
				animation-timing-function:ease-in;/*运动速度曲线*/
			}
			80%{
				transform:rotateX(90deg) rotateZ(-10deg) rotateY(-45deg);
				animation-timing-function:ease-out;/*运动速度曲线*/	
			}
			100%{
				transform:rotateX(180deg) rotateZ(0deg) rotateY(0deg);
			}
		}
		/*规定右边div的旋转特效*/
		@keyframes move2{
			0%{
				transform:rotateX(0deg) rotateZ(0deg) rotateY(0deg);
				animation-timing-function:ease;/*运动速度曲线*/
			}
			60%{/*先将木板立起来*/
				transform:rotateX(0deg) rotateZ(0deg) rotateY(60deg);
				animation-timing-function:ease-in;/*运动速度曲线*/
			}
			80%{
				transform:rotateX(90deg) rotateZ(-10deg) rotateY(45deg);
				animation-timing-function:ease-out;/*运动速度曲线*/	
			}
			100%{
				transform:rotateX(180deg) rotateZ(0deg) rotateY(0deg);
			}
		}
	</style>
</head>
<body>
	<div id="box">
		<ul>
			<li><img src="images/1.png"></li>
			<li><img src="images/2.png"></li>
			<li><img src="images/3.png"></li>
			<li><img src="images/4.png"></li>
			<li><img src="images/5.png"></li>
		</ul>
		<div id="show"></div>
	</div>
	<input type="button" id="prev" value="上一张">
	<input type="button" id="next" value="下一张">
	<script type="text/javascript">
		var oShow = document.getElementById("show");
		var oBox = document.getElementById("box");
		var prev = document.getElementById("prev");
		var next = document.getElementById("next");
		var oLi = oBox.getElementsByTagName("ul")[0].getElementsByTagName("li");
		var oImg = oBox.getElementsByTagName("ul")[0].getElementsByTagName("img");
		oShow.iNow = 0;//给oShow 对象添加一个自定义属性保存当前显示的图片
		oShow.urls = [];//保存图片路径
		oShow.off = false;
		for (var i=0;i<5 ;i++ )
		{
			var oDiv1 = document.createElement("div");
			var oDiv2 = document.createElement("div");
			oDiv2.className = 'div2';
			oDiv1.innerHTML = "<em class='em1' style='background-position:0px -"+i*72+"px'></em><span class='span1'></span><em class='em2' style='background-position:0px -"+i*72+"px'></em><span class='span2'></span>";
			oDiv2.innerHTML = "<em class='em1' style='background-position:-525px -"+i*72+"px'></em><span class='span1'></span><em class='em2' style='background-position:-525px -"+i*72+"px'></em><span class='span2'></span>";
			oShow.appendChild(oDiv1);
			oShow.appendChild(oDiv2);
		}
		oLi[0].style.display = "block";
		//获取所有的图片路径
		for (var i=0;i<oImg.length;i++)
		{
			oShow.urls.push(oImg[i].getAttribute("src"));
		}

		prev.onclick = function(){
			if (oShow.off)
			{
				return;//直接返回 后面的代码都不会执行了
			}
			oShow.off = true;
			var iNext = oShow.iNow - 1;
			if (iNext < 0 )
			{
				iNext = oShow.urls.length-1;
			}
			tab(iNext);//切换图片
		}
		next.onclick = function(){
			if (oShow.off)
			{
				return;//直接返回 后面的代码都不会执行了
			}
			oShow.off = true;
			var iNext = oShow.iNow + 1;
			if (iNext >= oShow.urls.length)
			{
				iNext = 0;
			}
			tab(iNext);//切换图片
		}

		function tab(iNext){
			var oEm1 = oShow.getElementsByClassName("em1");
			var oEm2 = oShow.getElementsByClassName("em2");
			var oDiv = oShow.getElementsByTagName("div");
			for (var i=0;i<oEm1.length ; i++)
			{
				//当前的这一张
				oEm1[i].style.backgroundImage = "url("+ oShow.urls[oShow.iNow] +")";
				//后面那一张
				oEm2[i].style.backgroundImage = "url("+ oShow.urls[iNext] +")";
			}
			oShow.style.display = "block";
			//console.log(oShow.iNow);
			oLi[oShow.iNow].style.display = "none";
			//给具体的十个div绑定定时器实现旋转的效果
			for (var i=0;i<oDiv.length ;i+=2 )
			{
				var time = (i+1)*50;
				oDiv[i].style.transform = "rotateX(0deg)";//左边div
				oDiv[i+1].style.transform = "rotateX(0deg)";//右边div
				//具体每个div绑定定时器
				setTimer(oDiv[i],time,"move1");
				setTimer(oDiv[i+1],time,"move2");
			}
			//动画执行完成之后
			setTimeout(function(){
				oShow.iNow = iNext;
				oLi[iNext].style.display = "block";
				oShow.style.display = "none";
				oShow.off = false;
			},(oDiv.length*50+1500));
			
		}
		
		function setTimer(obj,time,name){
			obj.timer = setTimeout(function(){
				//开启定时器之前先清楚定时器
				clearTimeout(obj.timer);
				obj.style.WebkitAnimation = name + " 1.5s";
				obj.style.WebkitTransform = "rotateX(180deg)";
				obj.timer = setTimeout(function(){
					obj.style.WebkitAnimation = "";
					clearTimeout(obj.timer);
					obj.timer = null;
				},1500)
			},time);
		};
	</script>
</body>
</html>

到了这里,关于3D划桨效果,效果请看gif图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML5+CSS3小实例:3D翻转Tab选项卡切换特效

    实例:3D翻转Tab选项卡切换特效 技术栈:HTML+CSS 效果: 源码: 【HTML】

    2024年02月04日
    浏览(59)
  • HTML5+CSS3小实例:带标题的3D多米诺人物卡片

    实例:带标题的3D多米诺人物卡片 技术栈:HTML+CSS 效果: 源码: 【html】

    2024年02月14日
    浏览(48)
  • HTML/CSS实现3D翻转页面效果

    下面是一个基本的例子,展示了如何使用CSS和HTML实现一个3D页面翻转效果: HTML部分: CSS部分: 在这个例子中,我们使用一个包含两个面(正面和背面)的容器div。通过CSS的 transform 属性和 rotateY 函数,我们实现了容器在鼠标悬停时的旋转效果。 你可以根据自己的需求调整容

    2024年01月24日
    浏览(46)
  • HTML5+CSS实现图片3D旋转效果,附音乐

    利用程序呈现图片,可以俘获一众女生的心,增加音乐可以实现图片变化的同时也带上了想要得到效果,如此一程序实乃众人之喜。 先看看程序呈现的效果,还是特别吸引人的。 先在网上爬取想要呈现的美女照片,存放在文件夹img-one,与程序路径一致。 图片像素需进行调整

    2024年02月13日
    浏览(51)
  • 用HTML、CSS和JavaScript实现鼠标可交互的3D太阳和月亮切换效果

    部分数据来源: ChatGPT  引言         太阳和月亮对于我们来说是一种常见的对比,这篇文章将介绍一个使用HTML、CSS和JavaScript创建的网页场景,能够把太阳和月亮切换展示给用户。这个场景能够让用户使用鼠标和滚轮与场景互动,带来更多的趣味和体验。 这里展示了HT

    2024年02月07日
    浏览(75)
  • css3其他效果

    1)媒体查询 不同分辨率下不同的样式,适应不同的屏幕 最大宽度,最小宽度 2)颜色渐变 渐变之后是一张图片 background-image 默认效果是从上到下(to bottom)的渐变  linear-gradient是线性渐变 要是想改变方向,要设置三个参数。注意:第一个参数是方向 设置角度就可以任意方

    2024年02月15日
    浏览(60)
  • css3阴影效果

    首先效果如下: 阴影效果完整代码如下 上面的动态图是没有加transition的,为了美观加上了一个

    2024年02月12日
    浏览(46)
  • CSS3动画效果详解

    在CSS3中,animation属性用于实现元素的动画。 animation属性跟transition属性在功能实现上是非常相似的,都是通过改变元素的属性值来实现动画效果。但是,这两者实际上有着本质的区别 对于transition属性来说,它只能将元素的某一个属性从一个属性值过渡到另一个属性值 对于

    2024年01月21日
    浏览(53)
  • CSS3十大滤镜效果详解

    类似于美颜相机、美图秀秀这样的美颜工具,能够让我们轻松地应用多种特效,例如转换为黑白照片、复古风格化、调整亮度等。在之前仅凭CSS几乎很难做到这些效果。 但在CSS3的语法中,所有的这些视觉特效都是通过“ filter ”属性来快速实现的。 语法: filter属性值有以下

    2024年01月16日
    浏览(42)
  • CSS3实现动画加载效果

    2024年02月07日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包