当前位置: 首页 > news >正文

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);
    }
}

欢迎采购- -

相关文章:

  • 诈欺猎物160万+,同盾科技、猛犸等诈欺猎人们的反击战
  • µWebSockets:一种WebSocket服务器实现
  • 瞬间移动(组合数, 逆元)
  • Vue性能优化:如何实现延迟加载和代码拆分?
  • Guava - 并行编程Futures
  • Mybatis Generator逆向工程的使用
  • springMvc REST 请求和响应
  • 数字水印技术的研究现状与发展趋势
  • 简单登录系统
  • warning no match for this type name:xxx.xxx.xxx [Xlint:invalidAbsoluteTypeName]
  • 用UltraISO制作系统安装u盘
  • index merge的一次优化
  • python之下载每日必应壁纸
  • malloc与free函数用法
  • 通读现代软件工程之构建之法
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [NodeJS] 关于Buffer
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 0基础学习移动端适配
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android优雅地处理按钮重复点击
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • css的样式优先级
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • PHP变量
  • React中的“虫洞”——Context
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 走向全栈之MongoDB的使用
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ${ }的特别功能
  • (1)bark-ml
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (4)STL算法之比较
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (三)Honghu Cloud云架构一定时调度平台
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十一)图像的罗伯特梯度锐化
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)关系数据库标准语言SQL
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)项目管理杂谈-我所期望的新人
  • .jks文件(JAVA KeyStore)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET MVC 验证码
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET基础篇——反射的奥妙
  • .net知识和学习方法系列(二十一)CLR-枚举
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Query中countQuery的介绍