JS实现六边形3D拖拽翻转效果的方法
作者:daisy 时间:2023-08-28 15:51:31
效果图
实例代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript六边形3d拖拽翻转效果</title>
</head>
<style>
#box{width:200px;height:200px;margin: 200px auto; background: #ccc; position: relative;
transform:perspective(800px) rotateY(-60deg) rotateX(45deg);transform-style:preserve-3d;}
#box div{width:100%;height: 100%; position: absolute;top:0;left:0; background-size: cover;-webkit-box-shadow:0 0 100px #5fbcff; opacity: 0.8;}
.front{ transform: translateZ(100px); background:#f00;}
.back{transform: translateZ(-100px); background:#20ab4f;}
.top{transform:translateY(-100px) rotateX(90deg); background: #ff7800;}
.bottom{transform:translateY(100px) rotateX(-90deg); background: #00f6ff;}
.left{transform:translateX(-100px) rotateY(90deg); background: #0084ff;}
.right{transform:translateX(100px) rotateY(-90deg); background: #b400ff;}
</style>
<script>
window.onload=function(){
var oDiv=document.querySelector("#box");
var y=-60;
var x=45;
oDiv.onmousedown=function(ev){
var ev=ev||event;
var disX=ev.clientX-y;
var disY=ev.clientY-x;
document.onmousemove=function(ev){
var ev=ev||event;
y=ev.clientY-disY;
x=ev.clientX-disX;
oDiv.style.transform='perspective(800px) rotateX('+x+'deg) rotateY('+y+'deg)';
}
document.onmouseup=function(){
document.onmouseup=null;
document.onmousemove=null;
oDiv.releaseCapture&&oDiv.releaseCapture();
}
oDiv.setCapture&&oDiv.setCapture()
return false;
}
}
</script>
</head>
<body>
<div id="box">
<div class="front"></div>
<div class="back"></div>
<div class="top"></div>
<div class="bottom"></div>
<div class="left"></div>
<div class="right"></div>
</div>
</body>
</html>
标签:js,3d,翻转,拖拽
0
投稿
猜你喜欢
mysql 开发技巧之JOIN 更新和数据查重/去重
2024-01-17 06:30:54
图文详解mysql中with...as用法
2024-01-27 20:52:43
PHP实现的登录,注册及密码修改功能分析
2023-11-14 21:45:29
oracle增加表空间大小两种实现方法
2024-01-15 14:34:12
tensorflow可视化Keras框架中Tensorboard使用示例
2023-08-09 01:39:27
Pandas:DataFrame对象的基础操作方法
2023-07-20 16:13:19
python实现发送和获取手机短信验证码
2023-08-09 08:02:26
树莓派用python中的OpenCV输出USB摄像头画面
2023-11-04 12:12:49
原生js仿浏览器滚动条效果
2024-04-10 16:09:33
Go 语言入门之net/url 包
2024-05-29 22:06:33
vue-quill-editor插入图片路径太长问题解决方法
2024-05-29 22:46:29
19个ASP编程基础典型代码
2008-10-23 15:46:00
基于Python实现语音合成小工具
2023-01-13 15:25:38
如何实现对整个站点所有页面的操作?
2010-05-19 21:20:00
利用OBJECT_DEFINITION函数来代码存档
2009-01-20 15:34:00
django 实现简单的插入视频
2023-12-24 09:59:33
如何把python项目部署到linux服务器
2023-10-02 14:27:22
Innodb表select查询顺序
2024-01-16 03:32:40
浏览器针对单服务器连接数问题
2008-05-12 22:27:00
详解MySQL中的分组查询与连接查询语句
2024-01-17 16:32:19