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 相关文章推荐
MSN消息提示类
Sep 05 Javascript
JavaScript 获取当前时间戳的代码
Aug 05 Javascript
jquery indexOf使用方法
Aug 19 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
详解jQuery的Cookie插件
Nov 23 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
简单实现js拖拽效果
Jul 25 Javascript
Angularjs使用过滤器完成排序功能
Sep 20 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
d3绘制基本的柱形图的实现代码
Dec 12 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 Javascript
vue项目强制清除页面缓存的例子
Nov 06 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
PHP脚本的10个技巧(6)
2006/10/09 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP 中常量的知识整理
2017/04/14 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
微信小程序实现城市列表选择
2018/06/05 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
深入了解Python数据类型之列表
2016/06/24 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
pytorch数据预处理错误的解决
2020/02/20 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
留学自荐信的技巧
2013/10/17 职场文书
运动会入场式解说词
2014/02/18 职场文书
小小的船教学反思
2014/02/21 职场文书
品牌转让协议书
2014/08/20 职场文书
客户答谢会活动方案
2014/08/31 职场文书
护林员个人总结
2015/03/04 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android