>  기사  >  웹 프론트엔드  >  타임라인 효과의 CSS3 구현

타임라인 효과의 CSS3 구현

高洛峰
高洛峰원래의
2017-03-07 14:56:081632검색

최근에 컴퓨터를 켰을 때 Geek Academy의 신규 사용자가 한 달 동안 무료 VIP를 받는 것을 보고 들어가서 그 과정에 대해 이야기하지 않겠습니다. 실제 전투 경로 지도 페이지:

타임라인 효과의 CSS3 구현

타임라인과 약간 비슷하며, 마우스를 움직일 때마다 스크린샷을 확장하고 소개하는 드롭다운 효과가 있습니다. 정보, 효과는 꽤 좋습니다. 하지만 이 효과는 동적 추가에는 그다지 유연하지 않은 것 같습니다. 높이가 너비만큼 유연하지 않기 때문에 하나씩 추가해야 합니다. 그 중 많은 제품이 디스플레이 효과를 위해 만들어졌습니다.

물론, 이 아이디어를 바탕으로 더 간단한 유사한 효과도 만들었습니다. 주로 전체 레이아웃 효과를 각 콘텐츠를 모방하지는 않고, 오프닝 애니메이션도 직접 추가해 더욱 재미있게 만들었습니다. ...

먼저 효과를 살펴보겠습니다.

타임라인 효과의 CSS3 구현

효과는 아마도 이렇습니다. :

HTML 구조:

<p class="timezone">  
            <p class="time">  
                <h2>2015-07-02</h2>  
                <p>  
                    <p>暴走大事件第一季</p>  
                    <ul>  
  
                    </ul>  
                </p>  
            </p>  
            <p class="timeLeft" style="top: 100px;">  
                <h2>2015-07-02</h2>  
                <p>  
                    <p>暴走大事件第二季</p>  
                    <ul>  
  
                    </ul>  
                </p>  
</p>

여기서는 HTML 구조가 단순화되었습니다. .time 클래스는 오른쪽에 표시되고, .timeLeft는 왼쪽에 표시됩니다. 여백만 추가하고 각 부분의 내용을 삭제했습니다.

CSS 스타일 코드는 다음과 같습니다.

body{   
                background: #333;   
            }   
            h1{   
                text-align: center;   
                color:#fff;   
            }   
            .timezone{   
                width:6px;   
                height: 350px;   
                background: lightblue;   
                margin: 0 auto;   
                margin-top:50px;   
                border-radius: 3px;   
                position: relative;   
                -webkit-animation: heightSlide 2s linear;   
            }   
            @-webkit-keyframes heightSlide{   
                0%{   
                    height: 0;   
                }   
                100%{   
                    height: 350px;   
                }   
            }   
            .timezone:after{   
                content: &#39;未完待续...&#39;;   
                width: 100px;   
                color:#fff;   
                position: absolute;   
                margin-left: -35px;   
                bottombottom: -30px;   
                -webkit-animation: showIn 4s ease;   
            }   
            .timezone .time,.timezone .timeLeft{   
                position: absolute;   
                margin-left: -10px;   
                margin-top:-10px;   
                width:20px;   
                height:20px;   
                border-radius: 50%;   
                border:4px solid rgba(255,255,255,0.5);   
                background: lightblue;   
                -webkit-transition: all 0.5s;   
                -webkit-animation: showIn ease;   
            }   
            .timezone .time:nth-child(1){   
                -webkit-animation-duration:1s;   
            }   
            .timezone .timeLeft:nth-child(2){   
                -webkit-animation-duration:1.5s;   
            }   
            .timezone .time:nth-child(3){   
                -webkit-animation-duration:2s;   
            }   
            .timezone .timeLeft:nth-child(4){   
                -webkit-animation-duration:2.5s;   
            }   
            @-webkit-keyframes showIn{   
                0%,70%{   
                    opacity: 0;   
                }   
                100%{   
                    opacity: 1;   
                }   
            }   
            .timezone .time h2,.timezone .timeLeft h2{   
                position: absolute;   
                margin-left: -120px;   
                margin-top: 3px;   
                color:#eee;   
                font-size: 14px;   
                cursor:pointer;   
                -webkit-animation: showIn 3s ease;   
            }   
            .timezone .timeLeft h2{   
                margin-left: 60px;   
                width: 100px;   
            }   
            .timezone .time:hover,.timezone .timeLeft:hover{   
                border:4px solid lightblue;   
                background: lemonchiffon;   
                box-shadow: 0 0 2px 2px rgba(255,255,255,0.4);   
            }   
            .timezone .time p,.timezone .timeLeft p{   
                position: absolute;   
                top:50%;   
                margin-top: -25px;   
                left:50px;   
                width: 300px;   
                height: 50px;   
                background: lightblue;   
                border:3px solid #eee;   
                border-radius: 10px;   
                z-index: 2;   
                overflow: hidden;   
                cursor:pointer;   
                -webkit-animation: showIn 3s ease;   
                -webkit-transition: all 0.5s;   
            }   
            .timezone .timeLeft p{   
                left:-337px;   
            }   
            .timezone .time p:hover,.timezone .timeLeft p:hover{   
                height: 170px;   
            }   
            .timezone .time p p,.timezone .timeLeft p p{   
                color: #fff;   
                font-weight: bold;   
                text-align: center;   
            }   
            .timezone .time:before,.timezone .timeLeft:before{   
                content: &#39;&#39;;   
                position: absolute;   
                top:0px;   
                left: 32px;   
                width: 0px;   
                height: 0px;   
                border:10px solid transparent;   
                border-right:10px solid #eee;   
                z-index:-1;   
                -webkit-animation: showIn 3s ease;   
            }   
            .timezone .timeLeft:before{   
                left:-33px;   
                border:10px solid transparent;   
                border-left:10px solid #eee;   
            }   
            .timezone .time p ul,.timezone .timeLeft p ul{   
                list-style: none;   
                width:300px;   
                padding:5px 0 0;   
                border-top:2px solid #eee;   
                color:#fff;   
                text-align: center;   
            }   
            .timezone .time p li,.timezone .timeLeft p li{   
                display: inline-block;   
                height: 25px;   
                line-height: 25px;   
            }

이 CSS 스타일 코드는 참고용으로만 사용되었으며, 주요 내용은 정리되지 않았습니다. 애니메이션을 이해하는 것 역시 전체 레이아웃에 따라 달라집니다. 최고의 소원!

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

CSS3 타임라인 효과 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.