JS实现六边形3D拖拽翻转效果的方法


Posted in Javascript onSeptember 11, 2016

效果图

JS实现六边形3D拖拽翻转效果的方法

JS实现六边形3D拖拽翻转效果的方法

实例代码如下:

<!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>

以上就是这篇文章的全部内容,怎么样?效果很好吧,感兴趣的朋友们自己运行看看效果,希望这篇文章对大家能有一定的帮助。

Javascript 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
JSON JQUERY模板实现说明
Jul 03 Javascript
ext前台接收action传过来的json数据示例
Jun 17 Javascript
浅谈javascript中自定义模版
Jan 29 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
Seajs是什么及sea.js 由来,特点以及优势
Oct 13 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 #Javascript
简单分析javascript中的函数
Sep 10 #Javascript
javascript数组常用方法汇总
Sep 10 #Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 #Javascript
Three.js快速入门教程
Sep 09 #Javascript
jQuery动态修改字体大小的方法【测试可用】
Sep 09 #Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 #Javascript
You might like
PHP生成月历代码
2007/06/14 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python实现趣味图片字符化
2019/04/30 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
研讨会通知
2015/04/27 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis