美文网首页
炫酷隧道css,js

炫酷隧道css,js

作者: 焦迈奇 | 来源:发表于2018-08-13 21:17 被阅读0次
image.png
.container{
    width: 100%;
    height:100%;
    perspective: 500px;
}
@keyframes round {
    to{
        transform:rotateX(360deg);
    }
}
.box{
    width:100%;
    height:100%;
    transform-style: preserve-3d;
    transform: rotateY(0deg) translateZ(350px);
}
.tunnel{
    position:relative;
    width:200px;
    height:200px;
    margin:0 auto;
    transform-style:preserve-3d;
    animation:round 10s infinite linear;
}
.ring{
    position:absolute;
    width:100%;
    height:100%;
    border:6px;
    border-radius:50%;
    border-style:dashed;
    list-style-type:none;
    transform-style:preserve-3d;
    color: #1418c1;
}
<body>
    <div class="container">
        <div class="box">
            <ul class="tunnel">
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
                <li class="ring"></li>
            </ul>
        </div>
    </div>
    <script>
        var li=document.getElementsByTagName('li');
        for(var i=0;i<li.length;i++){
            li[i].style.color="hsl("+i*5+",100%,50%)";
            console.log(li[i].style.color);
            li[i].style.transform="rotateX("+i*5+"deg) translateY(200px)";
            console.log(li[i].style.transform);
        }
        console.log(li.length);
    </script>
</body>

里面需要注意的点

  1. perspective放置于父元素,则所有的子元素都只有一个源,若设置多个perspective于父辈元素,则3d的绕轴位置会发生改变,避免这种情况则只设定一个视距。
  2. hsl(h,s,l)分别代表颜色,饱和度,亮度,注意饱和度和亮度的比例会影响颜色。
  3. 72个li标签每一个绕y轴rotate(i*5deg)构成整个的环状,颜色同理。
  4. border-style:dashed虚化。
  5. li标签的元素位置负责构成环状,而运动由父元素.tunnel rotate(360deg)所实现。
  6. 记得给有动画的元素添加transfor-style:preserved-3d.

相关文章

  • 炫酷隧道css,js

    里面需要注意的点 perspective放置于父元素,则所有的子元素都只有一个源,若设置多个perspective...

  • 21个CSS3 / JS实现的时钟

    收集了21个酷炫的CSS / JS实现的时钟效果https://oktools.net/clocks 预览 :ht...

  • css炫酷特效

    鼠标移动上去 展示文字 代码结构: css: .tags_list_designer{ position:re...

  • webpack的几个概念

    现在的web前端越来越酷炫,每开发一个Web应用,需要依赖的js、css等资源越来越多,在html里需要写很多例如...

  • animate.css

    animate.css animate.css 是提供炫酷,有趣,跨浏览器css3动画的网站,可以在高级项目中使用...

  • css原来也可以这么酷!css生成艺术【笔记】

    【css笔记】css 大会 袁川 视频链接 演讲主要讲了用 css 生成一些炫酷的图片,首先先复习了下简单的知识,...

  • 前端用库

    Javascript 库Particles.js— 一个用来在 web 中创建炫酷的浮动粒子的库Three.js ...

  • 引用第三方样式库实现动画

    animate.css是一个能渲染出炫酷效果的css库,只需引用该css库,在相应的元素上加上class类名,即可...

  • 炫酷转场动画-iOS

    炫酷转场动画-iOS 炫酷转场动画-iOS

  • CSS之乱七八糟的笔记

    CSS 滤镜技巧与细节: (做一些炫酷的效果时用到)blur 混合 contrast 产生融合效果filter: ...

网友评论

      本文标题:炫酷隧道css,js

      本文链接:https://www.haomeiwen.com/subject/pokpbftx.html