天天看點

%3c dd%3e html,index.html



超流暢漂亮的圖檔3D旋轉滾動JS特效代碼 - JS代碼網

* { margin:0; padding:0; list-style:none; }

body { background:black; overflow:hidden;}

#stage {

width:200px; height:300px; position:relative; margin:0 auto; margin-top:150px;background:null;

-webkit-transform:rotateX(-10deg) rotateY(0deg) perspective(2000px);

-moz-transform:rotateX(-10deg) rotateY(0deg) perspective(2000px);

-ms-transform:rotateX(-10deg) rotateY(0deg) perspective(2000px);

-o-transform:rotateX(-10deg) rotateY(0deg) perspective(2000px);

transform:rotateX(-10deg) rotateY(0deg) perspective(2000px);

-webkit-transform-style:preserve-3d;

-moz-transform-style:preserve-3d;

-ms-transform-style:preserve-3d;

-o-transform-style:preserve-3d;

transform-style:preserve-3d;

}

#shadow {

position:absolute; left:50%; top:50%; width:1200px; height:1200px; margin-left:-600px; margin-top:-600px;

background:-webkit-radial-gradient(center center, 600px 600px ,rgba(50,50,50,1), rgba(0,0,0,0));

background: -moz-radial-gradient(center center, 600px 600px ,rgba(50,50,50,1), rgba(0,0,0,0));

background: -ms-radial-gradient(center center, 600px 600px ,rgba(50,50,50,1), rgba(0,0,0,0));

background: -o-radial-gradient(center center, 600px 600px ,rgba(50,50,50,1), rgba(0,0,0,0));

background: radial-gradient(center center, 600px 600px ,rgba(50,50,50,1), rgba(0,0,0,0));

-webkit-transform:translateY(200px) rotateX(90deg);

-moz-transform:translateY(200px) rotateX(90deg);

-ms-transform:translateY(200px) rotateX(90deg);

-o-transform:translateY(200px) rotateX(90deg);

transform:translateY(200px) rotateX(90deg);

}

#stage dd {

height:300px; width:200px; position:absolute; left:0; top:0; border:1px solid #666;

-webkit-transition:500ms all ease;

-moz-transition:500ms all ease;

-ms-transition:500ms all ease;

-o-transition:500ms all ease;

transition:500ms all ease;

}

.over {

position:absolute; left:0; top:320px; width:200px; height:300px; overflow:hidden;

-webkit-transition:2s all ease;

-moz-transition:2s all ease;

-ms-transition:2s all ease;

-o-transition:2s all ease;

transition:2s all ease;

-webkit-transform:scale(1,-1);

-moz-transform:scale(1,-1);

-ms-transform:scale(1,-1);

-o-transform:scale(1,-1);

transform:scale(1,-1);

background-size:100% 100%;

opacity:0;

}

var Effect = function( a, w, h, s, p, x, y )

{

var _3Deffect = function( array , width, height, stage, per, x, y )

{

this.oDoc = document;

this.stage = stage;

this.width = width;

this.height = height;

this.path = array;

this.domStr = "

";

this.perspective = per,

this.rotateX = x,

this.rotateY = y,

this.speedX=0,

this.speedY=0;

}

_3Deffect.prototype = {

transform : function( elem, value, key )

{

key = key || "transform";

[ "-webkit-", "-moz-", "-ms-", "-o-", "" ].forEach( function( pre )

{

elem.style[ pre + key ] = value;

});

return elem;

},

piece : function( value, key )

{

var str = "";

key = key || "transform";

[ "-webkit-", "-moz-", "-ms-", "-o-", "" ].forEach( function( pre )

{

str += ( key + ":" + pre + value );

return false;

});

return str;

},

addEvent : function ( obj, sEvent, fn )

{

if( obj.attachEvent )

{

obj.attachEvent( "on" + sEvent, fn );

}

else

{

obj.addEventListener( sEvent, fn, false );

};

},

onMouseWheel : function( e )

{

var _o = this;

if( e.wheelDelta ? e.wheelDelta < 0 : e.detail > 0 )

{

if( _o.perspective < 4000 )

{

_o.perspective += 150;

};

}

else

{

if( _o.perspective > 350 )

{

_o.perspective -= 150;

};

};

_o.transform( _o.stage[0], "perspective(" + _o.perspective + "px) rotateX("+ _o.rotateX +"deg) rotateY(" + _o.rotateY +"deg)" );

if( e.preventDefault )

{

e.preventDefault();

};

return false;

},

startMove : function startMove( obj )

{

var _o = this;

obj.timer = obj.timer || null;

clearInterval( obj.timer );

obj.timer = setInterval (function ()

{

_o.rotateX -= _o.speedY;

_o.rotateY += _o.speedX;

_o.speedY *= 0.93;

_o.speedX *= 0.93;

if( Math.abs( _o.speedX ) < 0.1 && Math.abs( _o.speedY ) < 0.1 )

{

_o.stopMove( obj.timer );

};

_o.transform( obj, "perspective(" + _o.perspective + "px) rotateX("+ _o.rotateX +"deg) rotateY(" + _o.rotateY +"deg)" );

}, 30);

},

stopMove : function( t )

{

clearInterval( t );

},

init : function()

{

var _o = this;

Aui.each( _o.path, function( i )

{

var shadow = _o.piece( "linear-gradient(top, rgb(0, 0, 0) 50%, rgba(255, 255, 255, 0)), url(" + this + ");", "background-image" ),

shadow = "

_o.domStr += "

" + shadow + "";

});

Aui( _o.stage ).html( _o.domStr );

var _oList = Aui( "dd", _o.stage ),

_sLen = _o.path.length,

_deg = 360/_sLen,

_tranZ = ( _o.width/2 + 40 ) / Math.tan( ( 360/_sLen/2 ) * Math.PI / 180 ),

_i = _sLen;

while( _i > 0 )

{

( function( d, len, _oList, _o )

{

setTimeout( function()

{

var idx = len - d,

oThis = _oList[ idx ]

oThis.children[0].style.opacity = 0.2;

_o.transform( oThis, "rotateY(" + ( idx*_deg ) +"deg) translateZ(" + _tranZ + "px)" );

}, d * 200 );

})( _i-- , _sLen, _oList, _o );

};

var wheel = function( e )

{

_o.onMouseWheel.call( _o, e || window.event );

};

_o.addEvent( _o.oDoc, "mousewheel", wheel );

_o.addEvent( _o.oDoc, "DOMMouseScroll", wheel );

var AuiDoc = Aui( _o.oDoc );

AuiDoc.mousedown( function( e )

{

var moveX = e.clientX,

moveY = e.clientY;

var startX = _o.rotateX;

var startY = _o.rotateY;

var lastX = moveX;

var lastY = moveY;

_o.speedX = _o.speedY = 0;

AuiDoc.mousemove( function( e )

{

var x = e.screenX,

y = e.screenY;

_o.rotateY = startY + ( e.clientX - moveX )/10;

_o.rotateX = startX - ( e.clientY - moveY )/10;

_o.transform( _o.stage[0], "perspective("+ _o.perspective +"px) rotateX("+ _o.rotateX +"deg) rotateY(" + _o.rotateY +"deg)" );

_o.speedX =( e.clientX - lastX )/5;

_o.speedY =( e.clientY - lastY )/5;

lastX = e.clientX;

lastY = e.clientY;

});

AuiDoc.mouseup( function()

{

this.onmousemove = null;

this.onmouseup = null;

_o.startMove( _o.stage[0] );

});

_o.stopMove( _o.stage[0].timer );

return false;

} );

return _o;

}

};

return new _3Deffect( a, w, h, s, p, x, y );

};

Aui.ready( function()

{

if( /ie/g.test( Aui.browser() ) )

{

Aui("body").html("Adam CSS 3.0 effect,支援非IE浏覽器。你懂的!")

.setStyle(

{

"color" : "#fff",

"text-align" : "center",

"font-size" : "50px",

"font-weight" : "bolder",

"line-height" : "500px"

});

}

else

{

Effect(

[ "01.jpg", "02.jpg", "03.jpg", "01.jpg", "02.jpg", "03.jpg", "01.jpg", "02.jpg", "03.jpg" ],

200,

300,

Aui.byID("#stage"),

2000,

-10,

).init();

};

});

var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");

document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6f798e51a1cd93937ee8293eece39b1a' type='text/javascript'%3E%3C/script%3E"));

一鍵複制

編輯

Web IDE

原始資料

按行檢視

曆史