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高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
jquery高级编程的最佳实践详解
Mar 23 Javascript
简单的jQuery入门指引
Jul 28 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
Mar 21 Javascript
利用n工具轻松管理Node.js的版本
Apr 21 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
Apr 22 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
Dec 06 Javascript
jquery实现选项卡切换代码实例
May 14 jQuery
node省市区三级数据性能测评实例分析
Nov 06 Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
最全面的百度地图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
星际争霸任务指南——虫族
2020/03/04 星际争霸
ajax缓存问题解决途径
2006/12/06 PHP
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python中的 enum 模块源码详析
2019/01/09 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python实现趣味图片字符化
2019/04/30 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
自主实习接收函
2014/01/13 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
内衣营销方案
2014/03/15 职场文书
质量月活动总结
2014/08/26 职场文书
五心教育心得体会
2014/09/04 职场文书
班主任经验交流材料
2014/12/16 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
仙境之桥观后感
2015/06/16 职场文书
决心书格式及范文
2019/06/24 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js