生活随笔
收集整理的這篇文章主要介紹了
jQuery可拖拽3D万花筒旋转特效
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是一個使用了CSS3立體效果的強大特效,本特效使用jQuery跟CSS3 transform來實現在用戶鼠標按下拖動時,環形圖片墻可以跟隨鼠標進行3D旋轉動畫。
效果體驗:
http://hovertree.com/texiao/jquery/92/
進去后可以上下左右的拖動圖片。
本示例中使用到了CSS3的transform-style 屬性,該規定如何在 3D 空間中呈現被嵌套的元素。
默認值: flat
繼承性: no
版本: CSS3
JavaScript 語法: object.style.transformStyle="preserve-3d"
有2個屬性值可選擇:
flat 子元素將不保留其 3D 位置。
preserve-3d 子元素將保留其 3D 位置。
示例代碼如下:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery可拖拽3D萬花筒旋轉特效 - 何問起</title><base target="_blank" />
<style type="text/css">*{margin:0;padding: 0;}.hovertree{width: 120px;height: 180px;margin: 150px auto 0;position: relative;/*transform 旋轉元素*/transform-style:preserve-3d;transform:perspective(800px) rotateX(-10deg) rotateY(0deg);}body{background-color: #66677c;}.hovertree img{position: absolute;width: 100%;height: 100%;border-radius: 5px;box-shadow: 0px 0px 10px #fff;/*倒影的設置*/-webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,.5) 100%);}.hovertree p{width: 1200px;height: 1200px;background: -webkit-radial-gradient(center center,600px 600px,rgba(255,255,255,.5),rgba(0,0,0,0));position: absolute;top:100%;left:50%;margin-top: -600px;margin-left: -600px;border-radius:600px;transform:rotateX(90deg);}.hewenqi{position:absolute;z-index:99;}a{color:blue;}
</style></head>
<body><div class="hovertree"><img src="http://hovertree.com/texiao/css/14/hovertreepic/01.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/02.jpg" /><img src="http://cms.hovertree.com/hvtimg/201511/9rour12a.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/04.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/05.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/06.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/07.jpg"/><img src="http://hovertree.com/texiao/css/14/hovertreepic/08.jpg"/><img src="http://hovertree.com/hvtimg/201511/6j9j6tk5.png"/><img src="http://cms.hovertree.com/hvtimg/201512/wfevf6yh.jpg"/><p></p>
</div><script src="http://down.hovertree.com/jquery/jquery-1.11.0.min.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){var imgL=$(".hovertree img").size();
var deg=360/imgL;
var roY=0,roX=-10;var xN=0,yN=0;var play=null;$(".hovertree img").each(function (i) {$(this).css({//<!--translateZ 定義2d旋轉沿著z軸-->"transform":"rotateY("+i*deg+"deg) translateZ(300px)" });//<!--防止圖片被拖拽-->$(this).attr('ondragstart','return false');});$(document).mousedown(function(ev){var x_=ev.clientX;var y_=ev.clientY;clearInterval(play);console.log('我按下了');$(this).bind('mousemove',function(ev){/*獲取當前鼠標的坐標*/var x=ev.clientX;var y=ev.clientY;/*兩次坐標之間的距離*/xN=x-x_;yN=y-y_;roY+=xN*0.2;roX-=yN*0.1;console.log('移動');//$('body').append('<div style="width:5px;height:5px;position:absolute;top:'+y+'px;left:'+x+'px;background-color:red"></div>');$('.hovertree').css({transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'});/*之前的鼠標坐標*/x_=ev.clientX;y_=ev.clientY;});}).mouseup(function(){$(this).unbind('mousemove');var play=setInterval(function(){xN*=0.95;yN*=0.95if(Math.abs(xN)<1 && Math.abs(yN)<1){clearInterval(play);}roY+=xN*0.2;roX-=yN*0.1;$('.hovertree').css({transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'});},30);});
});
</script>
<div style="text-align:center;margin:250px 0; font:normal 14px/24px 'MicroSoft YaHei';"><p class="hewenqi">來源:<a href="http://hovertree.com/">何問起</a> <a href="http://hovertree.com/h/bjag/5x3kdw0k.htm">說明</a></p>
</div>
</body>
</html>
轉自:http://hovertree.com/h/bjag/5x3kdw0k.htm
相似:http://hovertree.com/h/bjaf/a6598spx.htm
更多特效:http://www.cnblogs.com/roucheng/p/texiao.html
總結
以上是生活随笔為你收集整理的jQuery可拖拽3D万花筒旋转特效的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。