<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset='utf-8' />
<script src='js/jquery.js'></script>
<style>
.pic{
width: 120px;
height: 180px;
margin: 150px auto 0;
position: relative;
/*transform 旋转元素*/
transform-style:preserve-3d;
transform:perspective(800px) rotateX(-10deg) rotateY(0deg);
}
.pic 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%);
}
.pic 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);
}
</style>
</head>
<body>
<div class='box'>
<div class="pic">
<img src="data:image/1.jpg" />
<img src="data:image/2.jpg" />
<img src="data:image/3.jpg" />
<img src="data:image/4.jpg" />
<img src="data:image/5.jpg" />
<img src="data:image/6.jpg" />
<img src="data:image/7.jpg" />
<img src="data:image/8.jpg" />
<img src="data:image/9.jpg" />
<img src="data:image/10.jpg" />
<p></p>
</div>
</div>
<script>
$(function () {
var imgL = $(".pic img").size();
var deg = 360 / imgL;
var roY = 0, roX = -10;
var xN = 0, yN = 0;
var play = null;
$ (".pic img").each(function(i){
$(this).css({
"transform":"rotateY( " + i * deg + "deg) translateZ(200px)" });
$(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('移动');
$('.pic').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.95;
if (Math.abs(xN) < 1 && Math.abs(yN) < 1) {
clearInterval(play);
}
roY += xN * 0.2;
roX -= yN * 0.1;
$('.pic').css({
transform: 'perspective(800px) rotateX(' + roX + 'deg) rotateY(' + roY + 'deg)'
}); }, 30);
});
});
</script>
</body>
</html>原文出处:http://www.htmleaf.com/jQuery/list_1_5.html