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 Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
Javascript读取cookie函数代码
Oct 16 Javascript
Jquery中对数组的操作代码
Aug 12 Javascript
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
Nov 07 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
May 03 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
JS实现数据动态渲染的竖向步骤条
Jun 24 Javascript
如何利用node转发请求详解
Sep 17 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 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开发文件系统实例讲解
2006/10/09 PHP
php类
2006/11/27 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
php桥接模式应用案例分析
2019/10/23 PHP
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
Python标准库defaultdict模块使用示例
2015/04/28 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
python生成n个元素的全组合方法
2018/11/13 Python
python lxml中etree的简单应用
2019/05/10 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
寒暑假实习证明书模板
2014/11/29 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
导游词400字
2015/02/13 职场文书
秋收起义观后感
2015/06/11 职场文书
2016党员入党决心书
2015/09/22 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android