목차
Step 1. 绘制深色背景
Step 2. 使用渐变画出极光的轮廓
Step 3. 旋转拉伸
Step 4. 神奇的混合模式变换!
Step 5. 叠加 SVG feturbulence 滤镜
Step 6. 让极光动起来
1단계. 어두운 배경 그리기
2단계. 그라디언트를 사용하여 오로라 윤곽선 그리기
3단계. 회전 및 늘이기
Step 4. 마법같은 블렌딩 모드 변신!
5단계. SVG feturbulence 필터 오버레이
6단계. 오로라를 움직이게 합니다.
몇 가지 팁과 기타 사항🎜
웹 프론트엔드 CSS 튜토리얼 거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

Feb 09, 2022 pm 05:47 PM
css

이 기사에서는 CSS를 사용하여 오로라 효과를 얻는 방법을 공유할 것입니다. 주요 단계에는 어두운 배경 그리기, 그라디언트를 사용하여 오로라 윤곽선 그리기, 회전 및 늘이기 및 기타 관련 문제가 포함됩니다. 모두에게 도움이 됩니다.

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

CSS를 사용하여 Aurora를 구현할 수 있나요?

이렇게:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

음, 좀 당황스럽네요. 하지만 최근에 이런 현실적인 효과를 시뮬레이션하는 것은 불가능하지만 CSS를 사용하여 비슷한 특수 효과를 만들 수 있습니다.

오로라 사진을 관찰한 후 오로라 애니메이션에서 더 중요한 요소를 발견했습니다.

  1. 어두운 배경에 밝은 그라데이션 색상

  2. 물결의 흐름과 유사한 애니메이션 효과

밝음 Gradient를 사용하여 그라데이션 색상을 최대한 시뮬레이션할 수 있습니다. 물결의 애니메이션 효과에 관해서는 SVG 필터 feturbulence가 이를 위해 특별히 설계되었습니다. 이 필터의 사용은 이전 기사에서 반복적으로 언급되었습니다.

그라디언트 및 SVG의 <feturbulence></feturbulence> 필터 외에도 <feturbulence></feturbulence> 滤镜之外,我们可能还会用到混合模式mix-blend-mode)、CSS 滤镜等提升效果。

OK,有了大概的思路后,剩下的就是不断的尝试。

Step 1. 绘制深色背景

首先,我们可能需要一个深色的背景,用于表示我们的夜空。同时点缀一些星星,星星可以使用 box-shadow 模拟,这样,一副夜空背景我们可以在 1 个 p 内完成:

<p class="g-wrap">
</p>
로그인 후 복사
@function randomNum($max, $min: 0, $u: 1) {
 @return ($min + random($max)) * $u;
}

@function shadowSet($n, $size) {
    $shadow : 0 0 0 0 #fff;
    
    @for $i from 0 through $n { 
        $x: randomNum(350);
        $y: randomNum(500);
        $scale: randomNum($size) / 10;
        
        $shadow: $shadow, #{$x}px #{$y}px 0 #{$scale}px rgba(255, 255, 255, .8);
    }
    
    @return $shadow;
}

.g-wrap {
    position: relative;
    width: 350px;
    height: 500px;
    background: #0b1a3a;
    overflow: hidden;
    
    &::before {
        content: "";
        position: absolute;
        width: 1px;
        height: 1px;
        border-radius: 50%;
        box-shadow: shadowSet(100, 6);
}
로그인 후 복사

这一步比较简单,借助了 SASS 之后,我们能够得到这样一幅夜空背景图:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

Step 2. 使用渐变画出极光的轮廓

接下来,就是利用渐变,画出极光的一个轮廓效果。

其实就是一个径向渐变:

<p class="g-wrap">
  <p class="g-aurora"></p>
</p>
로그인 후 복사
.g-aurora {
    width: 400px;
    height: 300px;
    background: radial-gradient(
        circle at 100% 100%,
        transparent 45%,
        #bd63c1 55%,
        #53e5a6 65%,
        transparent 85%
    );
}
로그인 후 복사

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

Step 3. 旋转拉伸

目前看来,是有一点点轮廓了。下一步,我们把得到的这个渐变效果通过旋转拉伸变换一下。

.g-aurora {
    ...
    transform: rotate(45deg) scaleX(1.4);
}
로그인 후 복사

我们大概就能得到这样一个效果:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

Step 4. 神奇的混合模式变换!

到这里,其实雏形已经出来了。但是颜色看着不太像,为了和深色的背景融合在一起,这里我们运用上混合模式 mix-blend-mode

.g-aurora {
    ...
    transform: rotate(45deg) scaleX(1.4);
    mix-blend-mode: color-dodge;
}
로그인 후 복사

神奇的事情发生了,看看效果:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

image

整体的颜色看上去更加像极光的颜色。

Step 5. 叠加 SVG feturbulence 滤镜

接下来,我们要产生水纹波动的效果,需要借助 SVG 的 <feturbulence> 滤镜

我们添加一个 SVG 的 <feturbulence> 滤镜,利用 CSS filter 进行引用

<p class="g-wrap">
  <p class="g-aurora"></p>
</p>


    
        
            
            
        
    
로그인 후 복사
.g-aurora {
    ...
    transform: rotate(45deg) scaleX(1.4);
    mix-blend-mode: color-dodge;
    filter: url(#wave);
}
로그인 후 복사

我们即可得到这样一种效果:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

Wow,是不是已经很有那种感觉了。通过 feturbulence 的特性,我们近乎模拟出了极光的效果!

Step 6. 让极光动起来

最后一步,我们就需要让我们的极光动起来。由于 SVG 动画本身不支持类似 animation-fill-mode: alternate 这种特性。我们还是需要写一点 JavaScript 代码,控制动画的整体循环。

大概的代码是这样:

var filter = document.querySelector("#turbulence");
var frames = 0;
var rad = Math.PI / 180;

function freqAnimation() {
  bfx = 0.005;
  bfy = 0.005;
  frames += .5
  bfx += 0.0025 * Math.cos(frames * rad);
  bfy += 0.0025 * Math.sin(frames * rad);

  bf = bfx.toString() + &#39; &#39; + bfy.toString();
  filter.setAttributeNS(null, &#39;baseFrequency&#39;, bf);
  window.requestAnimationFrame(freqAnimation);
}

window.requestAnimationFrame(freqAnimation);
로그인 후 복사

至此,我们就得到了一幅完整的,会动的极光动画:

거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기

一些技巧及其他事项

  1. 渐变元素的周围会存在明显的边界毛刺效果,可以使用黑色内阴影 box-shadow: inset ...혼합 모드

    (mix-blend-mode), CSS 필터 등을 사용하여 기능을 향상할 수도 있습니다. 효과.
  2. 좋아요, 일반적인 아이디어를 얻은 후에 나머지는 계속 시도하는 것입니다.

    1단계. 어두운 배경 그리기

    먼저 밤하늘을 표현하려면 어두운 배경이 필요할 수 있습니다. 동시에 별을 장식하면 box-shadow를 사용하여 밤하늘 배경을 1p로 완성할 수 있습니다. 🎜rrreeerrreee🎜이 단계는 비교적 간단합니다. SASS의 도움으로 우리는 밤하늘 배경 사진을 얻을 수 있습니다: 🎜🎜거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기 🎜

    2단계. 그라디언트를 사용하여 오로라 윤곽선 그리기

    🎜다음 단계는 그라디언트를 사용하여 오로라 윤곽선 효과를 그리는 것입니다. 🎜🎜사실은 방사형 그래디언트입니다. 🎜rrreeerrreee🎜거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기🎜

    3단계. 회전 및 늘이기

    🎜현재는 윤곽선이 조금 있는 것 같습니다. 다음으로, 얻은 그라디언트 효과를 회전하고 늘려 변형합니다. 🎜rrreee🎜아마도 다음과 같은 효과를 얻을 수 있을 것입니다: 🎜🎜🎜

    Step 4. 마법같은 블렌딩 모드 변신!

    🎜이 시점에서 실제로 프로토타입이 나왔습니다. 하지만 색상이 비슷해 보이지 않습니다. 어두운 배경과 혼합하기 위해 여기서는 혼합 모드 mix-blend-mode를 사용합니다. 🎜rrreee🎜 뭔가 마법같은 일이 일어났습니다. 그 효과를 보세요: 🎜🎜🎜
    이미지
    🎜전체적인 색상은 오로라 색상에 더 가깝습니다. 🎜

    5단계. SVG feturbulence 필터 오버레이

    🎜다음으로 물 파문 효과를 생성하려면 SVG의 <feturbulence></feturbulence> 필터를 사용해야 합니다🎜🎜An을 추가합니다 SVG <feturbulence></feturbulence> 필터, CSS filter를 사용하여 🎜rrreeerrreee🎜를 참조하면 다음과 같은 효과를 얻을 수 있습니다. 🎜🎜거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기🎜🎜와, 벌써 그런 생각이 들지 않나요? 화기의 특징을 통해 오로라 효과를 거의 시뮬레이션할 수 있습니다! 🎜

    6단계. 오로라를 움직이게 합니다.

    🎜마지막 단계에서는 오로라를 움직이게 해야 합니다. SVG 애니메이션 자체는 animation-fill-mode: alter와 같은 기능을 지원하지 않기 때문입니다. 애니메이션의 전체 루프를 제어하려면 약간의 JavaScript 코드를 작성해야 합니다. 🎜🎜대략적인 코드는 다음과 같습니다: 🎜rrreee🎜이 시점에서 우리는 완전하게 움직이는 오로라 애니메이션을 갖게 되었습니다: 🎜

    거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기🎜

    몇 가지 팁과 기타 사항🎜

    🎜 🎜🎜그라디언트가 있을 것입니다. 검은색 내부 그림자 box-shadow: inset ...를 사용하여 제거할 수 있는 요소 주변의 명백한 테두리 버 효과 🎜🎜🎜🎜실제 쓰기 프로세스에서 각 속성의 실제 매개변수는 간단해 보입니다. 실제로 프로세스에서 지속적인 디버깅을 거쳐 얻은 것입니다.🎜
  3. 블렌딩 모드와 SVG feturbulence 필터는 익히기가 어렵고 지속적인 연습과 지속적인 디버깅이 필요합니다. 이 기사의 Aurora 색상 선택은 너무 많은 반복 디버깅을 거치지 않았습니다. 시간을 할애하면 디버깅할 수 있습니다. 더 나은 효과를 가진 색상.

최종 효과가 완벽하지는 않지만 여전히 좋은 CSS + SVG 작업입니다. 여기에서 전체 코드를 볼 수 있습니다:

(동영상 공유 학습: css 동영상 튜토리얼)

위 내용은 거의 알려지지 않았습니다! CSS를 사용하여 오로라 효과 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

부트 스트랩에 분할 라인을 작성하는 방법 부트 스트랩에 분할 라인을 작성하는 방법 Apr 07, 2025 pm 03:12 PM

부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

부트 스트랩에 사진을 삽입하는 방법 부트 스트랩에 사진을 삽입하는 방법 Apr 07, 2025 pm 03:30 PM

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.

부트 스트랩 크기를 조정하는 방법 부트 스트랩 크기를 조정하는 방법 Apr 07, 2025 pm 03:18 PM

부트 스트랩에서 요소의 크기를 조정하려면 다음을 포함하여 차원 클래스를 사용할 수 있습니다.

HTML, CSS 및 JavaScript의 역할 : 핵심 책임 HTML, CSS 및 JavaScript의 역할 : 핵심 책임 Apr 08, 2025 pm 07:05 PM

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

부트 스트랩을위한 프레임 워크를 설정하는 방법 부트 스트랩을위한 프레임 워크를 설정하는 방법 Apr 07, 2025 pm 03:27 PM

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

부트 스트랩 버튼을 사용하는 방법 부트 스트랩 버튼을 사용하는 방법 Apr 07, 2025 pm 03:09 PM

부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

부트 스트랩 날짜를 보는 방법 부트 스트랩 날짜를 보는 방법 Apr 07, 2025 pm 03:03 PM

답 : 부트 스트랩의 날짜 선택기 구성 요소를 사용하여 페이지에서 날짜를 볼 수 있습니다. 단계 : 부트 스트랩 프레임 워크를 소개하십시오. HTML에서 날짜 선택기 입력 상자를 만듭니다. 부트 스트랩은 선택기에 스타일을 자동으로 추가합니다. JavaScript를 사용하여 선택한 날짜를 얻으십시오.

Vue에서 부트 스트랩을 사용하는 방법 Vue에서 부트 스트랩을 사용하는 방법 Apr 07, 2025 pm 11:33 PM

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

See all articles