찾다
웹 프론트엔드View.jsVue에서 시차 전환을 구현하는 방법

Vue에서 시차 전환을 구현하는 방법

Dec 26, 2022 pm 03:38 PM
vue프런트 엔드

Vue의 시차 전환 구현 방법: 1. 해당 vue 파일을 엽니다. 2. 전환 그룹 구성 요소를 사용하여 패키지 목록의 각 요소에 대해 전환 구성 요소를 일괄 작동합니다. 3. 각 목록 항목에 서로 다른 지연을 추가합니다. .

Vue에서 시차 전환을 구현하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, Vue 버전 3, Dell G3 컴퓨터.

vue에서 시차 전환을 구현하는 방법은 무엇입니까?

Vue의 목록 시차 전환

Vue에서 시차 전환을 구현하는 방법

은 vue를 기반으로 하며, 이를 위해서는 vue의 Vue에서 시차 전환을 구현하는 방법Vue에서 시차 전환을 구현하는 방법-group에 대한 경험이 필요합니다. > 사용하고 이해하세요. Vue에서 시차 전환을 구현하는 방법Vue에서 시차 전환을 구현하는 방법-group有过使用和了解。

Vue에서 시차 전환을 구현하는 방법

vue的文档对 transtion 组件已经有了很详细的 分析 了。

这里说一下我的理解:

transtion 是vue提供的一个抽象组件,会在 合适的时机 帮我们操作其包裹的子元素。

这个合适的时机是:

  1. beforeEnter dom 从 js 生成,并刚插入页面的 那一帧(对应下图的动画开始)
  2. enter dom 插入页面之后的 下一帧(对应下图的动画中)
  3. afterEnter dom 动画完成之后的 下一帧(对应下图的动画结束)
Vue에서 시차 전환을 구현하는 방법

Vue에서 시차 전환을 구현하는 방법-group

ransition-group组件 会对包裹的列表中每一个元素批量进行 transtion组件 的操作。

html
<div>
    <vue>
        <item></item>
    </vue>에서 시차 전환을 구현하는 방법-group>
</div>
css.list-enter {    opacity: 0;    transform: translateY(100%);
}.list-enter-active {    Vue에서 시차 전환을 구현하는 방법: .3s;
}/* enter-to其实可以不用写, 没有显性写明,就是默认的opacity: 1;transform: none;  */.list-enter-to {    opacity: 1;    transform: translateY(0);
}
Vue에서 시차 전환을 구현하는 방법-group

接下来给 每个列表项 加上不同 延时 即可。

Vue에서 시차 전환을 구현하는 방법-delay

css.list-enter-active:nth-child(5n+2) {    Vue에서 시차 전환을 구현하는 방법-delay: .3s;
}.list-enter-active:nth-child(5n+3) {    Vue에서 시차 전환을 구현하는 방법-delay: .5s;
}.list-enter-active:nth-child(5n+4) {    Vue에서 시차 전환을 구현하는 방법-delay: .7s;
}.list-enter-active:nth-child(5n+5) {    Vue에서 시차 전환을 구현하는 방법-delay: .9s;
}复制代码
Vue에서 시차 전환을 구현하는 방법-delay

用 Vue에서 시차 전환을 구현하는 방법-delay 配合 css选择器,确实可以实现Vue에서 시차 전환을 구현하는 방법,

但是缺点也很明显,要写大量的 css ,修改起来也不灵活。

接下来我们用vue的 JavaScript钩子 来实现。

Vue에서 시차 전환을 구현하는 방법

html<div>
    <!-- 这里加上 v-bind:css="false" 让vue跳过对css的检测,让我们更好控制 动画完成的时机 -->
    <vue>

        <item></item>

    </vue>에서 시차 전환을 구현하는 방법-group></div>复制代码

当只用 JavaScript 过渡的时候,在 enter 和 leave 中必须使用 done 进行回调。否则,它们将被同步调用,过渡会立即完成。

new Vue({    el: "#app",    data: () => ({        num: 0
    }),    methods: {        //让我们在 beforeEnter enter afterEnter 钩子里,把 vue 帮我们做的事,自己做一遍:
        //添加移除 class 类名,监听 Vue에서 시차 전환을 구현하는 방법end 事件。
        beforeEnter(dom) {
            dom.classList.add('list-enter', 'list-enter-active');
        },        enter(dom,done) {            let delay = dom.dataset.delay;            Vue에서 시차 전환을 구현하는 방법(function () {
                dom.classList.remove('list-enter');
                dom.classList.add('list-enter-to');                //监听 Vue에서 시차 전환을 구현하는 방법end 事件
                var Vue에서 시차 전환을 구현하는 방법end = window.onVue에서 시차 전환을 구현하는 방법end ? "Vue에서 시차 전환을 구현하는 방법end" : "webkitTransitionEnd";
                dom.addEventListener(Vue에서 시차 전환을 구현하는 방법end, function onEnd() {
                  dom.removeEventListener(Vue에서 시차 전환을 구현하는 방법end, onEnd);                  done(); //调用done() 告诉vue动画已完成,以触发 afterEnter 钩子
                });
            }, delay)
        },        afterEnter(dom) {
            dom.classList.remove('list-enter-to', 'list-enter-active');
        }
    }
})复制代码
Vue에서 시차 전환을 구현하는 방법

目前来说,运行良好,实现了Vue에서 시차 전환을 구현하는 방법的效果,也不用写大量的 css。

回头看看我们一共做了2件事,用 .list-enter .list-enter-toVue에서 시차 전환을 구현하는 방법

告诉浏览器,在不同的时间把列表项,从opacity 0 translateY(100%) 过渡到,opacity 1 translateY(0)

Vue에서 시차 전환을 구현하는 방법

vue의 문서에는 이미 transtion 구성 요소분석

.

내가 이해한 바는 다음과 같습니다.

transtion은 vue에서 제공하는 추상 구성 요소로, 적절한 시간에 래핑된 하위 요소를 작동하는 데 도움이 됩니다.

적절한 시간은 다음과 같습니다.

  1. beforeEnter js에서 dom이 생성되어 페이지에 방금 삽입된 프레임(아래 그림의 애니메이션 시작 부분에 해당)
  2. enter dom은 페이지에 삽입한 후의 다음 프레임입니다(아래 애니메이션에 해당).
  3. afterEnter dom은 애니메이션이 완료된 후 다음 프레임(아래 그림의 애니메이션이 종료됨에 해당)

Vue에서 시차 전환을 구현하는 방법
Vue에서 시차 전환을 구현하는 방법

전환 그룹

전환 그룹 구성 요소는 래핑된 목록의 각 요소에 대해 일괄 처리를 수행합니다. transtion 구성 요소의 작업입니다.

html
<div>
        <vue>

            <item></item>

        </vue>에서 시차 전환을 구현하는 방법-group>
    </div>
new Vue({
    el: "#app",
    data: () => ({
        num: 0
    }),
    methods: {        beforeEnter(dom) {
            let { x = 0, y = 0, s = 1, opacity = 0 } = dom.dataset;
            dom.Vue에서 시차 전환을 구현하는 방법.cssText = `Vue에서 시차 전환을 구현하는 방법: .3s;opacity: ${opacity};transform: scale(${s}) translateX(${x}) translateY(${y});`;
        },        enter(dom,done) {
            let delay = dom.dataset.delay;            Vue에서 시차 전환을 구현하는 방법(function () {
                dom.Vue에서 시차 전환을 구현하는 방법.cssText = `Vue에서 시차 전환을 구현하는 방법: .3s;opacity: 1;transform: scale(1) translateX(0) translateY(0);`;                //监听 Vue에서 시차 전환을 구현하는 방법end 事件
                var Vue에서 시차 전환을 구현하는 방법end = window.onVue에서 시차 전환을 구현하는 방법end ? "Vue에서 시차 전환을 구현하는 방법end" : "webkitTransitionEnd";
                dom.addEventListener(Vue에서 시차 전환을 구현하는 방법end, function onEnd() {
                  dom.removeEventListener(Vue에서 시차 전환을 구현하는 방법end, onEnd);                  done(); //调用done() 告诉vue动画已完成,以触发 afterEnter 钩子
                });
            }, delay)
        },        afterEnter(dom) {
            dom.Vue에서 시차 전환을 구현하는 방법.cssText = "";
        }
    }
})
Vue에서 시차 전환을 구현하는 방법-group
Vue에서 시차 전환을 구현하는 방법
다음으로, 각 목록 항목에 서로 다른 지연을 추가하세요.

전환-지연

html
    <item></item>
Vue에서 시차 전환을 구현하는 방법-delay
🎜🎜🎜CSS 선택기와 함께 전환 지연을 사용하면 실제로 시차를 둔 전환을 달성할 수 있습니다. 🎜🎜 하지만 단점도 분명합니다. CSS이며 수정이 어렵습니다. 🎜🎜다음으로 vue의 JavaScript 후크를 사용하여 구현합니다. 🎜

Vue에서 시차 전환을 구현하는 방법🎜
getRandom() {    var rate = Math.floor(Math.random() * 90 + 10);    return Math.random() > 0.5 ? rate : -1 * rate;
}
🎜🎜전환에 JavaScript만 사용하는 경우 Enter 및 Leave의 콜백에 done을 사용해야 합니다. 그렇지 않으면 동기적으로 호출되고 전환이 즉시 완료됩니다. 🎜🎜rrreee🎜Vue에서 시차 전환을 구현하는 방법🎜🎜🎜 🎜지금까지는 시차 전환 효과를 달성하면서 잘 실행되고 있으며 CSS를 많이 작성할 필요가 없습니다. 🎜🎜돌아보면 .list-enter .list-enter-toVue에서 시차 전환을 구현하는 방법🎜🎜을 사용하여 브라우저에 다른 시간을 알리는 총 2가지 작업을 수행했습니다. 목록 항목을 불투명도 0translateY(100%)에서 불투명도 1translateY(0)로 변경합니다. 🎜🎜 클래스 이름 외에도 🎜🎜 DOM을 직접 조작하고 스타일을 인라인으로 작성할 수 있습니다. 🎜🎜 CSS 클래스 이름을 전혀 작성할 필요가 없다는 점 외에도 🎜🎜 더 많은 프로그래밍 가능성을 가질 수도 있습니다. 🎜🎜Vue에서 시차 전환을 구현하는 방법🎜rrreeerrreee🎜🎜🎜🎜🎜🎜그렇습니다. 하지만 모든 것이 js에 있으므로 제한할 수 있는 유일한 것은 상상력뿐입니다. 🎜rrreeerrreee🎜🎜🎜🎜추천 학습: "🎜vue.js 비디오 튜토리얼🎜"🎜🎜

위 내용은 Vue에서 시차 전환을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

vue.js는 중소형 프로젝트에 적합하지만 REACT는 크고 복잡한 응용 프로그램에 더 적합합니다. 1. Vue.js의 응답 형 시스템은 종속성 추적을 통해 DOM을 자동으로 업데이트하여 데이터 변경을 쉽게 관리 할 수 ​​있습니다. 2. 반응은 단방향 데이터 흐름을 채택하고 데이터 흐름에서 하위 구성 요소로 데이터가 흐르고 명확한 데이터 흐름과 곤란하기 쉬운 구조를 제공합니다.

vue.js vs. React : 프로젝트 별 고려 사항vue.js vs. React : 프로젝트 별 고려 사항Apr 09, 2025 am 12:01 AM

vue.js는 중소형 프로젝트 및 빠른 반복에 적합한 반면 React는 크고 복잡한 응용 프로그램에 적합합니다. 1) vue.js는 사용하기 쉽고 팀이 불충분하거나 프로젝트 규모가 작는 상황에 적합합니다. 2) React는 더 풍부한 생태계를 가지고 있으며 고성능 및 복잡한 기능적 요구가있는 프로젝트에 적합합니다.

태그를 vue로 점프하는 방법태그를 vue로 점프하는 방법Apr 08, 2025 am 09:24 AM

VUE에서 태그의 점프를 구현하는 방법에는 다음이 포함됩니다. HTML 템플릿의 A 태그를 사용하여 HREF 속성을 지정합니다. VUE 라우팅의 라우터 링크 구성 요소를 사용하십시오. javaScript 에서이. $ router.push () 메소드를 사용하십시오. 매개 변수는 쿼리 매개 변수를 통해 전달 될 수 있으며 동적 점프를 위해 라우터 옵션에서 경로가 구성됩니다.

VUE의 구성 요소 점프를 구현하는 방법VUE의 구성 요소 점프를 구현하는 방법Apr 08, 2025 am 09:21 AM

VUE에서 구성 요소 점프를 구현하는 방법은 다음과 같습니다. 라우터 링크 및 & lt; router-view & gt; 하이퍼 링크 점프를 수행하고 대상 경로로 속성을 지정합니다. & lt; router-view & gt; 현재 라우팅 된 렌더링 된 구성 요소를 표시하는 구성 요소. 프로그래밍 방식 탐색을 위해 router.push () 및 router.replace () 메소드를 사용하십시오. 전자는 역사를 구하고 후자는 기록을 떠나지 않고 현재 경로를 대체합니다.

Vue의 div로 점프하는 방법Vue의 div로 점프하는 방법Apr 08, 2025 am 09:18 AM

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.

vue 점프로 값을 전송하는 방법vue 점프로 값을 전송하는 방법Apr 08, 2025 am 09:15 AM

VUE에서 데이터를 전달하는 두 가지 주요 방법이 있습니다 : Props : 일원 데이터 바인딩, 부모 구성 요소에서 자식 구성 요소로 데이터를 전달합니다. 이벤트 : 이벤트와 사용자 정의 이벤트를 사용하여 구성 요소간에 데이터를 전달합니다.

Vue의 소개 방법으로 점프하는 방법Vue의 소개 방법으로 점프하는 방법Apr 08, 2025 am 09:12 AM

vue.js는 점프하는 세 가지 방법을 제공합니다. 기본 JavaScript API : Window.location.href를 사용하여 점프하십시오. Vue 라우터 : & lt; router-link & gt를 사용하십시오. 태그 또는이. $ router.push () 메소드 점프. Vuex : 파견 경로 점프는 파견 동작을 통과하거나 돌연변이를 커밋합니다.

VUE의 점프 페이지를 설정하는 방법VUE의 점프 페이지를 설정하는 방법Apr 08, 2025 am 09:09 AM

라우터 링크 구성 요소를 사용하여 클릭 가능한 링크 생성을 포함하여 VUE에서 페이지 리디렉션을 설정하는 몇 가지 방법이 있습니다. router.push () 메소드를 사용하여 히스토리 스택에 새 경로를 수동으로 추가하십시오. 라우터 .replace () 메소드를 사용하여 현재 경로를 교체하십시오. location.href를 사용하여 직접 새 페이지로 리디렉션하십시오.

See all articles

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

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

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