js 3D图片叠加旋转切换特效代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 js 3D图片叠加旋转切换特效代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

js 3D图片叠加旋转切换特效代码

HTML代码(index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>js 3D图片叠加旋转切换</title>
<style type="text/css">
body{margin:0px;padding:0px; font-size:12px;}
#top{width:100%;height:139px;float:left;background:url(images/top.jpg) no-repeat center;position:relative;}
#top .small{width:634px;height:56px;position:absolute;top:56px;left:50%;display:inline;margin:0 0 0 -310px;}
#top .small ul{margin:0;padding:0px;}
#top .small li{width:65px;height:48px;float:left;border:1px solid #000;display:inline;margin:3px 0 0 3px;padding:0px;filter:alpha(opacity=40);opacity:0.4;cursor:pointer;}
#top .small li.hove{filter:alpha(opacity=100);opacity:1;}
#box{width:100%;height:602px;float:left;background:url(images/banna.jpg) no-repeat center;overflow:hidden;position:relative;}
#box .bg{width:100%;height:340px;background:#000;filter:alpha(opacity=70); opacity:0.7; position:absolute; top:132px; left:0px;}
#list{width:1004px;height:446px;position:absolute;top:75px;left:50%;display:inline;margin-left:-502px;}
#list ul {margin:0px;padding:0px; float:left;}
#list li{width:100px;border:3px solid #000;position:absolute;list-style-type:none;overflow:hidden;cursor:pointer;}
#list li img{width:100%;height:100%;vertical-align:top;}
#list li div{width:100%;height:100%;background:#000;filter:alpha(opacity=70); opacity:0.7; position:absolute; z-index:1; top:0px; left:0px;}
#list li .b_tit{width:100%;height:120px;position:absolute; z-index:1; bottom:-100%; left:0px;margin:0px;padding:0px;}
#list li .opacity{width:100%;height:120px;background:#000;filter:alpha(opacity=80); opacity:0.8; position:absolute; z-index:1; bottom:0px; left:0px;}
#list li .tit{width:324px;height:120px;padding:0 10px;position:absolute; z-index:2; bottom:0px; left:0px;}
#list li .tit span{width:100%;height:30px;font-weight:normal;float:left;text-align:left;line-height:30px;color:#fff;border-bottom:1px solid #2f2f2c;margin:0px;padding:0px;}
#list li .tit span em{color:#ba0707;font-style:normal;float:none;}
#list li .tit em{color:#fff;line-height:25px;float:left;margin:0px;padding:5px 0;font-style:normal;}
#list a{width:39px;height:80px;background:url(images/btn.png) no-repeat;text-decoration:none;position:absolute;z-index:20;top:190px;}
#list a.prev{background-position:0 0; left:-54px;}
#list a.next{background-position:-39px 0; right:-100px;}
#bottom{width:100%;height:200px;float:left;background:url(images/bottom.jpg) no-repeat center;position:relative;}
#bottom .title{width:100%;height:60px;line-height:60px;color:#fff;text-align:center;position:absolute;left:0px;bottom:0px;font-family:Verdana;}
#bottom .title a{background:#666666;text-decoration:none;color:#fff; padding:3px 5px;}
</style>
<script type="text/javascript">
window.onload = function(){
	var oBut = document.getElementById('list');
	var oTop = document.getElementById('top');
	var oTli = oTop.getElementsByTagName('li');
	var aLi = oBut.getElementsByTagName('li');
	var aA = oBut.getElementsByTagName('a');
	var aP = getClass(oBut, 'b_tit');
	var oSmall = getClass(oTop, 'small')[0];
	var i = iNow = 0;
	var timer = null;
	var aSort = [];
	var aPosition = [
					{width:344,height:440,top:0,left:352,zIndex:10},
					{width:260,height:332,top:56,left:148,zIndex:8},
					{width:204,height:260,top:92,left:0,zIndex:6},
					{width:140,height:180,top:132,left:148,zIndex:4},
					{width:110,height:140,top:172,left:232,zIndex:2},
					{width:110,height:140,top:172,left:708,zIndex:2},
					{width:140,height:180,top:132,left:770,zIndex:4},
					{width:204,height:260,top:92,left:844,zIndex:6},
					{width:260,height:332,top:56,left:640,zIndex:8}
		]
	for(i=0;i<oTli.length;i++){
		oTli[i].index = i;
		myAddEvent(oTli[i], 'mouseover', function(){
			startMove(this, {opacity:100});
		})
		myAddEvent(oTli[i], 'mouseout', function(){
			if(this.className != 'hove')startMove(this, {opacity:40});
		})
		myAddEvent(oTli[i], 'click', function(){
			iNow = this.index;
			tab();
		})
	}
	for(i=0;i<aLi.length;i++){
		aLi[i].index = i;
		aLi[i].style.width = aPosition[i].width +'px';
		aLi[i].style.height = aPosition[i].height +'px';
		aLi[i].style.top = aPosition[i].top +'px';
		aLi[i].style.left = aPosition[i].left +'px';
		aLi[i].style.zIndex = aPosition[i].zIndex;
		aSort[i] = aPosition[i];
		myAddEvent(aLi[i], 'mouseover', function(){
			var oDiv = this.getElementsByTagName('div')[0];
			startMove(oDiv, {opacity:0});
			if(this.style.width == '344px'){
				startMove(aP[this.index], {bottom:0});
			}
		});
		myAddEvent(aLi[i], 'mouseout', function(){
			if(this.style.width == '344px'){
				startMove(aP[this.index], {bottom:-120});
			}else{
				var oDiv = this.getElementsByTagName('div')[0];
				startMove(oDiv, {opacity:75});
			}
		});
		myAddEvent(aLi[i], 'click', function(){
			var iSort = this.index;
			iNow = this.index;
			Sort();
			for(i=0;i<iSort;i++){
				aSort.unshift(aSort.pop());
			}
			sMove();
		});
	}
	myAddEvent(aA[0], 'click', function(){
		aSort.unshift(aSort.pop());
		sMove();
		setInter();
	});
	myAddEvent(aA[1], 'click', function(){
		aSort.push(aSort.shift());
		sMove();
		iNow--;
		if(iNow<0)iNow = aLi.length - 1;
		tab();
	});
	oSmall.onmouseover = oBut.onmouseover = function(){
		clearInterval(timer);
	};
	oSmall.onmouseout = oBut.onmouseout = function(){
		clearInterval(timer);
		timer = setInterval(setInter,5000);
	};
	timer = setInterval(setInter,5000);
	function setInter(){
		iNow++;
		if(iNow>aLi.length-1)iNow = 0;
		tab();
	}
	function tab(){
		for(i=0;i<oTli.length;i++)oTli[i].className = '',startMove(oTli[i], {opacity:40});
		oTli[iNow].className = 'hove';
		startMove(oTli[iNow], {opacity:100})
		var iSort = iNow;
		Sort();
		for(i=0;i<iSort;i++){
			aSort.unshift(aSort.pop());
		}
		sMove();
	}
	function Sort(){
		for(i=0;i<aLi.length;i++){
			aSort[i] = aPosition[i];
		}
	}
	function sMove(){
		for(i=0;i<aLi.length;i++){
			var oDiv = aLi[i].getElementsByTagName('div')[0];
			startMove(oDiv, {opacity:75});
			startMove(aLi[i], aSort[i], function(){one();});
			aLi[i].className = '';
		}
		aLi[iNow].className = 'hove';
	}
	function one(){
		for(i=0;i<aLi.length;i++){
			if(aLi[i].style.width == '344px'){
				var oDiv = aLi[i].getElementsByTagName('div')[0];
				startMove(oDiv, {opacity:0});
			}
		}
	}
	one();
};
function getClass(oParent, sClass){
	var aElem = document.getElementsByTagName('*');
	var aClass = [];
	var i = 0;
	for(i=0;i<aElem.length;i++)if(aElem[i].className == sClass)aClass.push(aElem[i]);
	return aClass;
}
function myAddEvent(obj, sEvent, fn){
	if(obj.attachEvent){
		obj.attachEvent('on' + sEvent, function(){
			fn.call(obj);
		});
	}else{
		obj.addEventListener(sEvent, fn, false);
	}
}
function startMove(obj, json, fnEnd){
	if(obj.timer)clearInterval(obj.timer);
	obj.timer = setInterval(function (){
		doMove(obj, json, fnEnd);
	}, 30);
}
function getStyle(obj, attr){
	return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr];
}
function doMove(obj, json, fnEnd){
	var iCur = 0;
	var attr = '';
	var bStop = true;
	for(attr in json){
		attr == 'opacity' ? iCur = parseInt(100*parseFloat(getStyle(obj, 'opacity'))) : iCur = parseInt(getStyle(obj, attr));
		if(isNaN(iCur))iCur = 0;
		if(navigator.userAgent.indexOf("MSIE 8.0") > 0){
			var iSpeed = (json[attr]-iCur) / 3;
		}else{
			var iSpeed = (json[attr]-iCur) / 5;
		}
		iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
		if(parseInt(json[attr])!=iCur)bStop = false;
		if(attr=='opacity'){
			obj.style.filter = "alpha(opacity:"+(iCur+iSpeed)+")";
			obj.style.opacity = (iCur + iSpeed) / 100;
		}else{
			attr == 'zIndex' ? obj.style[attr] = iCur + iSpeed : obj.style[attr] = iCur + iSpeed +'px';
		}
	}
	if(bStop){
		clearInterval(obj.timer);
		obj.timer = null;		
		if(fnEnd)fnEnd();
	}
}
</script>
</head>

<body>
<div id="top">
	<div class="small">
    	<ul>
        	<li class="" style="opacity: 0.4; "><img src="./images/01.jpg"></li>
            <li class="" style="opacity: 0.4; "><img src="./images/02.jpg"></li>
            <li style="opacity: 0.96; " class="hove"><img src="./images/03.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/04.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/05.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/06.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/07.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/08.jpg"></li>
            <li style="opacity: 0.4; " class=""><img src="./images/09.jpg"></li>
        </ul>
    </div>
</div>
<div id="box">
	<div class="bg"></div>
    <div id="list">
        <ul>
            <li style="width: 204px; height: 260px; top: 92px; left: 844px; z-index: 6; " class="">
                <img src="./images/01(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit" style="bottom: -120px; ">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>蒙其·D·路飞<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【船长】</em></span>
                        <em>恶魔果实:橡胶果实<br>悬赏:3千万(可可亚西村事件)→1亿(阿拉巴斯坦事件)→3亿(司法岛事件)→4亿(顶上战争后)</em>
                    </span>
                </p>
            </li>
            <li style="width: 260px; height: 332px; top: 56px; left: 640px; z-index: 8; " class="">
                <img src="./images/02(1).jpg">
                <div style="opacity: 0.21; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>罗罗诺亚·索隆<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【剑士】</em></span>
                        <em>悬赏:6千万(阿拉巴斯坦事件)→1亿2000万(司法岛事件)</em>
                    </span>
                </p>
            </li>
            <li style="width: 344px; height: 440px; top: 0px; left: 352px; z-index: 10; " class="hove">
                <img src="./images/03(1).jpg">
                <div style="opacity: 0; "></div>
                <p class="b_tit" style="bottom: -120px; ">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>娜美<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【航海士】</em></span>
                        <span>悬赏:1600万(司法岛事件)</span>
                    </span>
                </p>
            </li>
            <li style="width: 260px; height: 332px; top: 56px; left: 148px; z-index: 8; " class="">
                <img src="./images/04(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>乌索普<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【狙击手】</em></span>
                        <em>悬赏:3000万(司法岛事件)</em>
                    </span>
                </p>
            </li>
            <li style="width: 204px; height: 260px; top: 92px; left: 0px; z-index: 6; " class="">
                <img src="./images/05(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit" style="bottom: -120px; ">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>香吉士<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【厨师】</em></span>
                        <em>悬赏:7700万(司法岛事件)</em>
                    </span>
                </p>
            </li>
            <li style="width: 140px; height: 180px; top: 132px; left: 148px; z-index: 4; " class="">
                <img src="./images/06(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>托尼托尼·乔巴<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【船医】</em></span>
                        <em>恶魔果实:动物系人人果实<br>悬赏:50贝利(司法岛事件)</em>
                    </span>
                </p>
            </li>
            <li style="width: 110px; height: 140px; top: 172px; left: 232px; z-index: 2; " class="">
                <img src="./images/07(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>弗兰奇<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【船匠】</em></span>
                        <em>悬赏:4400万贝利(司法岛事件)</em>
                    </span>
                </p>
            </li>
            <li style="width: 110px; height: 140px; top: 172px; left: 708px; z-index: 2; " class="">
                <img src="./images/08(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>布鲁克<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【音乐家】</em></span>
                        <em>恶魔果实:超人系黄泉果实<br>悬赏:3300万贝利</em>
                    </span>
                </p>
            </li>
            <li style="width: 140px; height: 180px; top: 132px; left: 770px; z-index: 4; " class="">
                <img src="./images/09(1).jpg">
                <div style="opacity: 0.71; "></div>
                <p class="b_tit">
                    <span class="opacity"></span>
                    <span class="tit">
                        <span>妮可·罗宾<em>&nbsp;&nbsp;&nbsp;&nbsp;草帽海贼团【考古学家】</em></span>
                        <em>恶魔果实:超人系花花果实<br>悬赏:7900万贝利(奥哈拉事件)→8000万贝利(司法岛事件)</em>
                    </span>
                </p>
            </li>
        </ul>
        <a href="javascript:;" class="prev"></a>
        <a href="javascript:;" class="next"></a>
    </div>
</div>
</body></html>
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
2.25 MB
Html JS 其它特效4
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章