CSS3D效果

效果如本博客中右边呢个浅色框框,来自webpack首页(IE绕路0_0)

github地址:http://wjf444128852.github.io/demo02/css3/css3d/

思路:

1、关键是父元素ul的这2个属性

a:transform-style: preserve-3d;

b:transform: rotateX(-33.5deg) rotateY(45deg);

让ul先有点偏移旋转的效果!

2、分别让每个li相对于ul前后左右上下位移一定距离是li宽度的一半,6个面上的li的背景色是从中间向四周的渐变色

3、最下面的li当作阴影,需要特殊处理

4、定义动画帧让ul执行注意animation的参数和兼容性

/*animation: name duration timing-function delay iteration-count direction;*/
/*name 规定需要绑定到选择器的 keyframe 名称。。*/
/*duration 规定完成动画所花费的时间,以秒或毫秒计。*/
/*timing-function 规定动画的速度曲线。*/
/*delay 规定在动画开始之前的延迟。*/
/*iteration-count 规定动画应该播放的次数。*/
/*direction 规定是否应该轮流反向播放动画。*/

撸码如下

HTML

<div class="will_rotate">
        <ul class="rotate_parent">
            <li class="tip_front"></li>
            <li class="tip_back"></li>
            <li class="tip_right"></li>
            <li class="tip_left"></li>
            <li class="tip_top"></li>
            <li class="tip_bottom"></li>
            <li class="tip_floor"></li>
        </ul>
   </div>

CSS

.will_rotate{
    width: 150px;
    height: 150px;
    margin: 0 auto;
    position: relative;
}
.rotate_parent, .rotate_parent li {
    position: absolute;
    display: block;
}
.rotate_parent{
    width: 100%;
    height: 100%;
    padding: 0;
    /*margin: -50px 0;*/
    -webkit-transform-origin: 50px 50px;
    transform-origin: 50px 50px;
    -webkit-transform: rotateX(-33.5deg) rotateY(45deg);
    transform: rotateX(-33.5deg) rotateY(45deg);
    -webkit-transform-style: preserve-3d;
     transform-style: preserve-3d;
     -webkit-animation: willRotate 3s ease-in-out infinite 2s;
     animation: willRotate 3s ease-in-out infinite alternate;
     /*animation: name duration timing-function delay iteration-count direction;*/
        /*name    规定需要绑定到选择器的 keyframe 名称。。*/
           /*duration    规定完成动画所花费的时间,以秒或毫秒计。*/
          /*timing-function    规定动画的速度曲线。*/
         /*delay    规定在动画开始之前的延迟。*/
        /*iteration-count    规定动画应该播放的次数。*/
        /*direction    规定是否应该轮流反向播放动画。*/
    top: 20%;
    /*left: 50%;*/
}

.rotate_parent .tip_back, .rotate_parent .tip_front, .rotate_parent .tip_left, .rotate_parent .tip_right, .rotate_parent .tip_top {
    background: radial-gradient(transparent 30%,rgba(126,17,91,.2) 100%);
}
.rotate_parent li {
    width: 100px;
    height: 100px;
     transition: -webkit-transform 1s ease-in-out;
     transition: transform 1s ease-in-out;
}
.rotate_parent .tip_front {
    -webkit-transform: translateZ(50px);
     transform: translateZ(50px);
}
.rotate_parent .tip_back {
    -webkit-transform:translateZ(-50px);
    transform:translateZ(-50px);
}
.rotate_parent .tip_right {
    -webkit-transform: rotateY(90deg) translateZ(50px);
    transform: rotateY(90deg) translateZ(50px);
}
.rotate_parent .tip_left {
    -webkit-transform: rotateY(90deg) translateZ(-50px);
    transform: rotateY(90deg) translateZ(-50px);
}
.rotate_parent .tip_top {
    -webkit-transform: rotateX(90deg) translateZ(50px);
    transform: rotateX(90deg) translateZ(50px);
}
.rotate_parent .tip_bottom{
    -webkit-transform: rotateX(90deg) translateZ(-50px);
    transform: rotateX(90deg) translateZ(-50px);
}
.rotate_parent .tip_floor {
    box-shadow: -300px 0 50px rgba(0,0,0,.3);
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
    width: 110px;
    height: 110px;
    left: 295px;
    background-color: transparent;
    -webkit-transform: rotateX(90deg) translateZ(-60px);
    transform: rotateX(90deg) translateZ(-60px);
}
@-webkit-keyframes willRotate{
    0%{
        transform:rotateX(-33.5deg) rotateY(45deg);
    }
    100%{
        transform:rotateX(-33.5deg) rotateY(360deg);
    }
}
@keyframes willRotate{
    0%{
        transform:rotateX(-33.5deg) rotateY(45deg);
    }
    100%{
        transform:rotateX(-33.5deg) rotateY(360deg);
    }
}

欢迎采购- -

时间: 2024-10-09 07:33:26

CSS3D效果的相关文章

利用CSS3D效果制作简易旋转木马效果

最近看一下css3d的一些特性,想着也实验学习一下,制作个小demo之类的.就练习了一下.开发一个粗糙的选择木马效果,如图 其实就是找到角度和位置,计算每根柱子的旋转角度摆放到3d空间的置顶位置即可.然后利用css的animate属性让3d舞台无线旋转,就有了一简易的旋转木马效果.感兴趣的可以看一下,可以把代码中的图片路径改为自己的图片地址就行了.直接可用. 代码如下: <!DOCTYPE html> <html> <head lang="en">

Three中创建文字的几种方法

1. DOM + CSS 传统html5的文字实现,用于添加描述性叠加文字的方法.一般使用绝对定位,并且保证z-index够大,用于显示在3D场景之上. 优点: 与CSS3D效果一致 缺点: 3d效果和运动还原不好 2. THREE.CanvasTexture 在canvas中绘制文字,然后使用CanvasTexture作为纹理进行贴图 例子 优点: 文字效果较为丰富,方便绘制. 缺点: 一旦生成,分辨率固定,放大会产生失真. 3. THREE.TextGeometry / THREE.Text

css3D文字效果

div { width:400px; height: 300px; line-height: 300px; background: #4bb1ff; font-size: 100px; text-align: center; color: #fff; text-shadow: 1px 1px 0 #158af7, 2px 2px 0 #158af7, /* end of 2 level deep grey shadow */ 3px 3px 0 #158af7, 4px 4px 0 #158af

css3加js做一个简单的3D行星运转效果

前几天在园子里看到一篇关于CSS3D行星运转的文章,原文在这里,感觉这个效果也太酷炫了,于是自己也就心血来潮的来尝试的做了一下.因为懒得去用什么插件了,于是就原生的JS写,效果有点粗超,还有一些地方处理的不是很好,如果有好的建议万望留言告知,不胜感谢.源代码已上传到github上,点这里获取.好了不说废话了,下面附上代码. HTML部分 <div class="path-Saturn"> <div id="Saturn" title="土

CSS3D 转换调试

css3d 测试工具 效果如图: 代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

CSS3图片轮播效果

原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且简单易用.下面介绍我用css3与js写的一个图片轮播效果. 一般图片轮播就是三四张图片: <div class="wrap"> <div class="carousel"> <div><img src="http://

Android 从无到有打造一个炫酷的进度条效果

从无到有打造一个炫酷的进度条效果

html+css3实现长方体效果

网上大都是正方体的效果,由于做一个东西需要,写了一个HTML+css3实现的长方体,有需要的也可以看看.                   2017-07-25         21:30:23 html代码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>html+css3实现长方体效果<