<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>倾斜效果</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
perspective: 500px;
/*添加一个视距*/
}
div {
width: 400px;
height: 400px;
background-color: gray;
margin: 200px auto;
transition: all 0.1s;
}
</style>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div></div>
</body>
<script type="text/javascript">
var h = $('div').height() //获取要旋转元素的高度与宽度
var w = $('div').width()
var du = 5 //角度取值范围为0~90deg
$('div').mousemove(function(e) {
var x = e.clientX - $('div').offset().left //获取鼠标坐标在要旋转元素内的范围
var y = e.clientY - $('div').offset().top
var m = 2 * du / w * Math.abs(x - w / 2)
var n = 2 * du / w * Math.abs(y - h / 2)
if(x >= 0 && x < w / 2 && y >= 0 && y < h / 2) { //判断鼠标指针元素的哪一象限内
jiaodu()
} else if(x >= 0 && x < w / 2 && y >= 0 && y < h) {
jiaodu()
} else if(x >= 0 && x < w && y >= 0 && y < h / 2) {
jiaodu()
} else if(x >= 0 && x < w && y >= 0 && y < h) {
jiaodu()
}
function jiaodu() { //要执行旋转的角度
var p = y < h / 2 ? 1 : -1
var q = x < w / 2 ? -1 : 1
$('div').css({
transform: 'rotateX(' + p * m + 'deg) rotateY(' + q * n + 'deg)'
})
}
})
</script>
</html>