CSS3,transform3D立体可拖拽正方体实现原理
---恢复内容开始---
今天咱们来说一下,CSS中的3D效果
.如果你把transform真的掌握的和纯熟的话,就可以直接通过CSS做出很多很炫酷的效果,甚至.轮播图和选项卡都可以通过CSS来做,咱们明天就说如何运用CSS来做轮播图,大家记得看哦!
很好,话不多说,翠花'上代码':
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ITandYT</title>
<style type="text/css">
#box{
width: 200px;
height: 200px;
margin: 200px auto;
position: relative; /*给父级设置3d空间*/
transform-style: preserve-3d;
/*设置景深*/
/*perspective: 800px;*/
transform: perspective(8000px) rotateY(-60deg) rotateX(30deg);
} #box div{
width: 100%;
height: 100%;
border: 1px solid black;
position: absolute;
opacity: 0.7;
}
/*前面*/
#box div:nth-child(1){
background: palegreen;
transform: translateZ(100px);
}
/*后面*/
#box div:nth-child(2){
background: palevioletred;
transform: translateZ(-100px);
}
/*左面*/
#box div:nth-child(3){
background: plum;
transform: translateX(-100px) rotateY(90deg);
}
/*右面*/
#box div:nth-child(4){
background: peru;
transform: translateX(100px) rotateY(90deg);
}
/*上面*/
#box div:nth-child(5){
background: palegoldenrod;
transform: translateY(-100px) rotateX(90deg);
}
/*下面*/
#box div:nth-child(6){
background: paleturquoise;
transform: translateY(100px) rotateX(90deg);
}
img{
width:200px;
height: 100%;
}
</style>
</head>
<body>
<div id="box">
<div><img src="010.jpg"/></div>
<div><img src="010.jpg"/> </div>
<div><img src="010.jpg"/> </div>
<div><img src="010.jpg"/> </div>
<div><img src="010.jpg"/> </div>
<div><img src="010.jpg"/> </div>
</div> <script type="text/javascript"> // 获取元素
var oDiv = document.querySelector('#box');
var x = 30;
var y = -60;
oDiv.onmousedown = function(ev){
var event = window.event || ev;
var disY = event.clientX - y;
var disX = event.clientY - x; document.onmousemove = function(ev){
var event = window.event || ev;
// 计算偏移角度
x = event.clientY - disX;
y = event.clientX - disY;
oDiv.style.transform = 'perspective(800px) rotateY('+y+'deg) rotateX('+x+'deg)'
}
document.onmouseup = function(){
document.onmousemove = null;
}
return false;
} </script>
</body>
</html>
图片没有的话就其他的代替哦!
是不是很简单,你学会了吗???没学会也不要紧,直接把本上神的复制走吧!绝对能用哦!
纯熟原创,禁止未经允许私自转载!
---恢复内容结束---
CSS3,transform3D立体可拖拽正方体实现原理的更多相关文章
- HTML5图片拖拽预览原理及实现
一.前言 这两天恰好有一位同事问我怎样做一个图片预览功能.作为现代人的我们首先想到的当然是HTML5啦,其实HTML5做图片预览已经是一个老生常谈的问题了.我在这里就简单说说其中相关的一些东西,当然会 ...
- jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)
最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 1. ...
- 拖拽对DOM的影响
前一段时间公司要对上传列表中多文本输入框添加富文本编辑功能,所以最初的想法是引入富文本编辑器插件,对每个多文本输入框实例化一次.但是上传列表还有一个可以拖拽排序的功能,在初次实例化以后,再拖拽元素就会 ...
- 这交互炸了(四) :一分钟让你拥有微信拖拽透明返回PhotoView
本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发 <交互炸了>或许是一系列高端特效教程, 文中会介绍一些比较炫酷的特效,以及实现的思路.特效实现本身也许不会有太大的难度 ...
- 【转】IE沙箱拖拽安全策略解析
https://xlab.tencent.com/cn/2015/12/17/ie-sandbox-drop-security-policy/ IE沙箱逃逸是IE浏览器安全研究的一个重要课题,其中有一 ...
- 自由拖拽DIV实现
最近在做的项目有个效果是要实现div随意拖拽改变大小,前端框架选择的是vue.js,UI用的是element,拖拽效果可以很简单的实现,但是在拖拽过程中发现会对其他元素实现全选效果,因此最后选择使用元 ...
- 一步一步实现JS拖拽插件
js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠 ...
- Android学习系列(12)--App列表之拖拽GridView
根据前面文章中ListView拖拽的实现原理,我们也是很容易实现推拽GridView的,下面我就以相同步骤实现基本的GridView拖拽效果. 因为GridView不用做分组处理,代码处理起来 ...
- 原生js简单实现拖拽效果
实现弹窗拖拽效果的原理是:按下鼠标并移动——拖拽移动物体,抬起鼠标——停止移动.主要触发三个事件:onmousedown.onmousemove以及onmouseup: 首先搭建结构:一个宽350px ...
随机推荐
- xcode - iPhone Debugging: How to resolve 'failed to get the task for process'? - Stack Overflow
The program being debugged is not being run. Everyone sees this once in a while during Xcode develop ...
- Flume启动运行时报错org.apache.flume.ChannelFullException: Space for commit to queue couldn't be acquired. Sinks are likely not keeping up with sources, or the buffer size is too tight解决办法(图文详解)
前期博客 Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解) 问题详情 启动agent服务 [hadoop@master flume-1.7.0]$ ...
- 最新 php oracle 数据库连接 数据库分页
php 5连接 oracle 10g php oracle 分页 <?php//buyicode studio 20/12/2009//总记录数$sql = "select ROWNU ...
- 233 Matrix(矩阵快速幂+思维)
In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...
- dedicated bearer
Session Initiation Protocol (SIP) Basic Call Flow ExamplesRFC3665 intuitive, done. PDF] TS 123 401 ...
- PM2的安装和使用简介
一.简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单. 二.前期必备 node 环境 npm 三.安装 全局安装 ...
- Devexpress中统一设置字体样式的方法
#region 设置默认字体.日期格式.汉化dev DevExpress.Utils.AppearanceObject.DefaultFont = new System.Drawing.Font(&q ...
- 《Paxos Made Simple》翻译(转)
1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了. ...
- Duilib总体框架
从GoogleCode上下载的duilib工程中附带的一副总体设计图(如下所示),可以先整体了解一下,有个初步的认识,对后续进一步深入了解学习会很有帮助. 通过设计图有了一个初步认识后,接下来开始进一 ...
- module.exports,exports,export和export default,import与require区别与联系
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...