인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

vcxzz33님의 프로필 이미지
vcxzz33

작성한 질문수

웹 애니메이션의 새로운 표준, Web Animations API

가로로 스크롤되는 Sticky 갤러리

스크롤 이미지 영역 넘어갈시 가로로 스크롤이 안되여

작성

·

22

0

스크롤 이미지 영역 넘어갈시 가로가 움직여서 여러개의 이미지영역이 보이는게 안되여ㅠㅠ

선생님 완성본 02.html도 안되는거같아요

css

@charset 'utf-8';

html, body, h1, h2, h3, h4, h5, h6, p, blockquote, code, img, dl, dt, dd, ol, ul, li, fieldset, legend, caption { margin: 0; padding: 0; border: 0; }
div, span, article, section, header, footer, p, ul, li, fieldset, legend, label, a, nav, h1, h2, h3 { box-sizing: border-box; }
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; }
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section { display: block; }
ol, ul, li { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
img { max-width: 100%; height: auto; }

html {
	font-size: 20px;
	font-family: Roboto;
	line-height: 1.6;
}

body {
	background: dodgerblue;
}

.wrap{
	contain: paint;
}

.para {
  padding: 1em;
  font-size: 50px;
}

.gallery{
	display: flex;
	align-items: center;
	position: sticky;
	top: 0;
	width:350vw;
	max-width: 4000px;
	height: 100vh;
	border: 10px dashed deeppink;
}

.gallery-item{
	width:70vw;
	max-width: 800px;
	flex-shrink: 0;
}

.gallery-timeline{
	height:2000px;
	border:10px dashed mediumaquamarine;
}

02.js

import './scroll-timeline.js'

const gallery = document.querySelector('.gallery');
const galleryTimeline = document.querySelector('.gallery-timeline');

gallery.animate(
    [
        {transform : 'translayeX(0)'},
        {transform : 'translayeX(-100%)'}
    ],
    {
        fill : 'both',
        timeline : new ScrollTimeline ({
            scrollOffsets : [
                {target : galleryTimeline, edge : 'start' , threshold : 1},
                {target : galleryTimeline, edge : 'end' , threshold : 1}
            ]
        })
    }  
);

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. vcxzz33님.

주어진 코드에서 가로 스크롤 애니메이션이 제대로 작동하지 않는 것에 대해 해결 방법을 알아보겠습니다. 우선, 코드에서 몇 가지 개선할 부분이 있습니다.

  1. JavaScript 오타 수정:

    • translayeX가 아닌 translateX로 수정해야 합니다. 이 오타로 인해 애니메이션이 제대로 작동하지 않았을 것입니다.
  2. 스크립트 파일 연결 여부 확인:

    • scroll-timeline.js 파일이 제대로 가져와지고 있는지 확인하고, 이 파일에서 ScrollTimeline 기능이 올바르게 정의된 라이브러리를 사용하고 있는지도 확인해야 합니다.
  3. CSS와 HTML 구조 확인:

    • CSS에서 .gallery.gallery-timeline의 구조가 HTML과 일치하는지, 그리고 sticky 속성이 올바르게 작동하도록 DOM 구조가 적절히 설정되어 있는지 확인해보세요.

관련 문제를 해결하는 데 추가 지식이 필요한 경우, 커뮤니티의 이전 답변들이 도움이 될 수 있을 것입니다. 다음은 유사한 문제가 다루어진 질문들입니다:
- 자꾸 에러가 뜨는데 모르겠습니다ㅠㅠ - 여기서는 drawImage 오류 해결 방법이 다룬 질문이었습니다.
- main.js 를 적용한 후에 show-scene-1에서 2로 넘아기질 않습니다..ㅠㅠ - 이 질문에서는 offsetHeight 기록되는 오류가 다루어졌습니다.

추가적인 설정이 필요하거나 여전히 문제가 해결되지 않는 경우, developer tools를 이용하여 콘솔에서 오류 메시지를 확인하고, 적절한 수정이 필요한지 판단해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

vcxzz33님의 프로필 이미지
vcxzz33

작성한 질문수

질문하기