帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» 3D照片旋转
3D照片旋转
浏览:1092次
-
评论:0次
-
发布时间:2017-11-30
Html
Css
Js
body { background:#000; perspective:2000px; } #box { width:220px; height:300px; margin:200px auto; position:relative; transform-style:preserve-3d; } #box img { width:100%; height:100%; position:absolute; -webkit-box-reflect:below 10px; }
window.onload = function() { var oWrap = document.getElementById('box'); var oImg = box.getElementsByTagName('img'); var oImgLength = oImg.length; var Deg = 360 / oImgLength; var nowX, nowY, lastX, lastY, disx = 0, disy = 0; var roY = 0, roX = 0; var timer; for (var i = 0; i < oImgLength; i++) { oImg[i].style.transform = 'rotateY(' + i * Deg + 'deg) translateZ(400px)'; oImg[i].style.transition = 'transform 1s ' + (oImgLength - 1 - i) * 0.1 + 's'; } mTop(); window.onresize = mTop; function mTop() { var wH = document.documentElement.clientHeight; box.style.marginTop = wH / 2 - 180 + 'px'; } // 拖拽:三个事件-按下 移动 抬起 //按下 document.onmousedown = function(ev) { ev = ev || window.event; //鼠标按下的时候,给前一点坐标赋值,为了避免第一次相减的时候出错 lastX = ev.clientX; lastY = ev.clientY; //移动 this.onmousemove = function(ev) { ev = ev || window.event; // clearInterval( timer ); nowX = ev.clientX; // clientX 鼠标距离页面左边的距离 nowY = ev.clientY; // clientY ………………………………顶部……………… //当前坐标和前一点坐标差值 disx = nowX - lastX; disy = nowY - lastY; //更新wrap的旋转角度,拖拽越快-> minus变化大 -> roY变化大 -> 旋转快 roY += disx * 0.2; // roY = roY + disx*0.2; roX -= disy * 0.2; oWrap.style.transform = 'rotateX(' + roX + 'deg) rotateY(' + roY + 'deg)'; // //生成div,让div跟着鼠标动 // var oDiv = document.createElement('div'); // oDiv.style.cssText = 'width:5px;height:5px;background:red;position:fixed;left:'+nowX+'px;top:'+nowY+'px'; // this.body.appendChild(oDiv); //前一点的坐标 lastX = nowX; lastY = nowY; } //抬起 this.onmouseup = function() { this.onmousemove = null; timer = setInterval(function() { disx *= 0.98; disy *= 0.98; roY += disx * 0.2; // roY = roY + disx*0.2; roX -= disy * 0.2; oWrap.style.transform = 'rotateX(' + roX + 'deg) rotateY(' + roY + 'deg)'; }, 20); } return false; } }
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>3D照片旋转-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:3D效果的图片展示
超好看的照片墙
mousedown后滑动选择checkbox
讨论这个常用代码(0)
回答他人问题或分享心得会奖励牛币
〒_〒 居然一个评论都没有……
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
1092
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值