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 相关文章推荐
Javascript日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
JavaScript判断前缀、后缀是否是空格的方法
Apr 15 Javascript
微信小程序入门教程
Nov 18 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
js动态引入的四种方法
May 05 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
Vue如何基于es6导入外部js文件
May 15 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+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
前端性能优化建议
2020/09/17 Javascript
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
什么是Python中的顺序表
2020/06/02 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
年度考核自我鉴定
2013/11/09 职场文书
怎样写离婚协议书
2014/09/10 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
贷款工作证明模板
2015/06/12 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript