놀라운 순수 CSS 스크롤 표시기 효과

5969 단어 javascripthtmlcssweb
흥미로운 질문은 CSS를 사용하여 다음 스크롤바 효과를 구현하는 방법입니다.



페이지 스크롤에 따라 길이가 변경되는 상단의 노란색 스크롤 진행률 표시줄입니다.

아래 내용을 계속 읽기 전에 잠시 시간을 할애할 수 있습니다. JavaScript를 사용하지 않고 위의 효과를 능숙하게 얻을 수 있는지 여부에 대해 생각하거나 직접 시도하십시오.

좋아요, 이 효과는 제가 일상적인 개발 과정에서 마주쳤던 비슷한 작은 문제입니다. 사실 자바스크립트를 사용할 수 있다 해도 굉장히 번거롭게 느껴진다. CSS만 사용하여 이러한 효과를 달성할 수 있는지 궁금합니다.

요구 사항 분석



이 효과를 처음 보았을 때 이 스크롤 애니메이션은 페이지의 스크롤 거리 계산과 관련되어 있기 때문에 CSS만으로는 달성할 수 없다고 느꼈습니다.

CSS로만 하고 싶다면 다른 방법을 찾아 영리한 방법을 사용해야 합니다.

글쎄, CSS를 사용하여 몇 가지 트릭과 트릭의 도움을 받아 이 효과를 단계별로 달성해 봅시다. 난이도 분석:

  • 사용자가 현재 페이지를 얼마나 스크롤하고 있는지 확인하고 상단 진행률 표시줄에 알리는 방법은 무엇입니까?

  • 정상적인 분석은 이래야 하는데 이는 전통적 사고에 빠진다. 진행률 표시줄은 페이지의 스크롤 거리를 수신하고 너비를 변경하는 진행률 표시줄입니다. 페이지 스크롤링과 프로그레스 바가 일체형이라면?

    요구 사항을 충족



    판매하지 말고 linear-gradients를 사용하여 이 기능을 구현합시다.

    페이지가 로 래핑<body>되어 있다고 가정하면 전체 본문을 스크롤할 수 있고 왼쪽 아래에서 오른쪽 위로 이 선형 그래디언트를 페이지에 추가할 수 있습니다.

    body {
        background-image: linear-gradient(to right top, #ffcc00 50%, #eee 50%);
        background-repeat: no-repeat;
    }
    


    그러면 다음과 같은 효과를 얻을 수 있습니다.



    와우, 노란색 블록의 색상 변화는 실제로 전반적인 진행 상황을 표현할 수 있습니다. 사실, 여기서 현명한 당신은 이미 다음에 무엇을 해야할지 알고 있어야 합니다.

    추가 부분을 다루기 위해 의사 요소를 사용합니다.

    body::after {
        content: "";
        position: fixed;
        top: 5px;
        left: 0;
        bottom: 0;
        right: 0;
        background: #fff;
        z-index: -1;
    }
    


    시연을 용이하게 하기 위해 위의 흰색 베이스를 검은색 투명 베이스로 변경했습니다.:



    실제 효과는 다음과 같습니다.



    신중한 사용자는 페이지가 끝까지 스크롤될 때 진행률 표시줄이 끝나지 않는다는 것을 알 수 있습니다.



    그 이유는 선형 그래디언트의 몸체 높이가 전체body의 크기를 설정하기 때문에 그래디언트의 높이를 조정해 보겠습니다.

    body {
        background-image: linear-gradient(to right top, #ffcc00 50%, #eee 50%);
        background-size: 100% calc(100% - 100vh + 5px);
        background-repeat: no-repeat;
    }
    


    여기서 calc 연산을 하고 뺄셈 100vh 즉, 화면의 높이를 빼서 기울기가 아래로 미끄러질 때 오른쪽 위 모서리에 딱 맞도록 한다.

    그리고 + 5px는 스크롤링 진행률 표시줄의 높이이며 5px의 높이를 위해 예약되어 있습니다. 완벽한 효과를 살펴보십시오.



    지금까지 이 요구 사항은 완벽하게 충족되었습니다. 이는 좋은 트릭이며 완전한 데모입니다.

    CodePen Demo -- Using Linear-Gradient Implement Scrolling Indicator Effect

    드디어



    더 멋진 CSS 기술 문서는 내 문서에 요약되어 있습니다.
    Github-iCSS .

    자, 이 글은 여기까지 입니다. 도움이 되셨으면 합니다. :)

    좋은 웹페이지 즐겨찾기