묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
카트 페이지 오류(2)
매번 귀찮으실 텐데 답변 감사드립니다! 코드가 쌓이니까 어디서 에러가 난지 모르겠네요ㅠㅠ 말씀해주신대로 Cartpage.js를 밑에 처럼 고쳤는데도 에러가 나오네요.. 답변 늘 감사드립니다!!!! <div> <UserCardBlock products={props.user.cartDetail} /> </div>
-
해결됨애플 웹사이트 인터랙션 클론!
offsetTop에 관한 설명이 잘 이해가 되지 않습니다.
안녕하세요 현재 getBoundingClientTop 대신 offsetTop을 쓰는 부분에 관한 영상을 보고 있는데, 몇 번을 다시 봐도 이해가 잘 가지 않습니다. 왜 우리가 offsetTop값이 아니라 scale로 조정된 값이 필요하고, offsetTop은 왜 612라는 값을 나오는 것인 지 모르겠습니다. 좀 더 쉽게 다시 한 번 부가 설명해주시면 감사하겠습니다.
-
미해결비전공자를 위한 개발자 취업 개론
현재 국비학원을 다니고있는 학생입니다
안녕하세요 저는 현재 소프트웨어 개발과정을 이개월차에 접어들고 있는 학생입니다 현재까지 배운 것으로는 자바, html, css , javascript 가 있는데 이 모든 것을 단기간에 진도를 빼다 보니 ' 내가 지금 뭘 배우고 있는 것인가' 하는 의문점이 들고 정말 겉핥기식으로 배우고 있다는 생각이 듭니다. 이것을 통해 활용하거나 실습을 해 볼 시간은 물론 과정에서 주어지지 않습니다. 이것으로 무엇을 만들 수 있을지 생각하면 시간낭비만 하고 있는 것이 아닌지 두려움 마저 듭니다. 하루에 몇십개씩 개념을 던져주는데 이걸 어떻게 쓰는건지는 알 수가 없고.. 무용지물이 되는 것 같습니다. (상대적으로 html 같은 것은 쉬워서 검색이나 다른 페이지를 참고하여 간단한 페이지는 만들어본 적이 있습니다.) 자바는 문법공부만 했지 이걸로 뭘 만들 수 있다는 건지도 불투명합니다. 강연자님이 수행하신 것과 같은 개인프로젝트나 블로그처럼 배운 것을 바탕으로 뭔가를 만들어보면서 내 것으로 만드는 것이 중요할 것 같은데 이제껏 개념만 수십개씩 a는 b다 식인 공식만 때려붓는 수업을 들어왔던 저는 어떤 식으로 결과물을 만들어야 할지 , 어떤 방향으로 나아가야 할지 답답하네요. 이대로라면 6개월간 시간낭비만 하지 않을지, 따로 인강이라도 보며 독학이라도 해야할지.. 저도 강연자님처럼 뭔가 생산적인 결과물도 만들고 싶고 정말 내가 안다고 할 수 있는 지식도 갖고싶거든요. 매일 학원에서 배운 걸 복습도 했고 뭔가 잔뜩 배우긴 배웠지만 손에 잡히는게 하나도 없네요. 내가 하고 있는게 무얼 위한건 매일 의문이 듭니다. 제가 독학을 하는게 맞을까요? 어떤 식으로 공부를 해야할까요?
-
미해결스프링 부트 개념과 활용
controllerAdvice 와 ExceptionResolver 차이
두가지다 애플리케이션 전역에서 발생한 에러를 처리하는데 어떤 차이가 있을까요?? https://stackoverflow.com/questions/35323174/what-are-the-advantages-of-controlleradvice-over-exceptionhandler-or-handlerex 이곳에서는 응답본문의 조작을 할 수 있냐 없냐를 보고 있는데 controllerAdvice는 익셉션 발생에 따라서 여러 방식으로 처리 할 수 있고 ExceptionResolver 는 한가지 방식으로 밖에 처리하지 못해서 그런건가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
generateToken메서드에서 user.save메서드 질문
save메서드가 데이터베이스에 user를 추가하는 메서드 아닌가요? 로그인할때 generateToken메서드를 쓰는데 그러면 로그인할때 user를 추가한다는 말인가요?
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
동적 웹페이지 크롤링 에러 관련
안녕하세요! 크롤링 기초 부트캠프를 수강하고 이 수업을 재미있게 듣고 있습니다. 쉽게 따라갈 수 있게 강의해 주셔서 감사드립니다. 동적 웹페이지 관련 강의를 듣고 네이버 쇼핑에서 댓글 크롤링 하는 코드를 작성하였는데 계속 에러가 나서 며칠째 헤매다 문의드립니다. 네이버쇼핑에서는 더보기 버튼 대신에 페이지 번호를 클릭해야 합니다. 2페이지 버튼을 클릭하고 댓글을 읽어오는 코드를 작성하고 실행시켜도 계속 1페이지 있는 것만 읽혀오네요;;; 어떻게 해결할 방법이 없을까요? 감사합니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
정의되지 않은 Bullean 문의
안녕하세요. print(true) 예제 이후로 아래와 같은 에러 메세지가 뜹니다. NameError: name 'true' is not defined true, false 등을 사용하려면 다른 언어를 설치해야하는지 문의드립니다. 파이썬 버전은 3.8입니다. 수고하세요!
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
[수강환경문제] 강의화면의 오른쪽 동영상이 안나오고, 소리도 안납니다.
안녕하세요. 강의화면의 오른쪽 동영상이 안나오고, 소리도 안나는데, 어떻게 조치해야 할까요? 뭔가 설정이나 설치가 안된 것 같아요. 도와주세요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
form 태그 질문 있습니다.
createMemberForm.html 에는 form 태그 안에 role:form 이 명시되어있는데, createItemForm.html 에는 생략이 되어 있습니다. 생략이 되어도 되나요 ?? 검색을 해보니깐 form 태그에서 role=form 이란 해당 태그에 대한 정의를 해줌으로써, 컴퓨터의 리더기를 이용하여 웹 페이지를 읽을 때, 해당 부분이 form 이라는 것을 알려준다고 나오는데, 잘 이해가 가지 않습니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
sklearn 회귀와 keras, tensorflow
퍼펙트 가이드를 마치고 keras, tensorflow를 공부하고 있습니다. 시계열 학습에 좋다고여서.. 공부를 하다가 느낀건데 사이킷런 회귀와 케라스의 신경망의 차이가 있을까요? Dense를 구성하여 결국 fit predict를 하는데 사이킷런에서 회귀계수를 찾는거와 신경망을 통해서 회귀계수를 찾는게 비슷해보여서 알고리즘은 다르겠지면 서비스를 운영하는 입장에서 어디에선 사이킷런을 쓰고 어디에서 케라스와 텐서플로우를 써야할지 아직 감이 안잡히네요 목적은 시계열 데이터를 케라스와 사이킷런을 쓰려고 하고 (딥러닝) 그외 분석은 사이킷런으로 하려고 하는데 이게 맞나요? 물론 여기다 질문하는게 좀 이상하긴 할텐데 아시면 답변 부탁드립니다. (질문할곳이 여기밖에 없네요 ㅠ)
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
MyBatisJava, MyBatisXML 둘다 에러가 납니다.
예제와 똑같이 했는데 아래 메시지가 계속 둘다 나옵니다. 에러 메시지 : Server Tomcat v9.0 Server at localhost failed to start. 가능하시면 현재 실행되는 예제를 받아볼수 있으면 좋겠습니다. 아래부분이 문제 인것 같기도 한데 정확히는 모르겠습니다. <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --> <!-- <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> --> commons-dbcp2 를 주석 처리한면 hello world 는 실행 됩니다. <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 --> <!-- <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.7.0</version> </dependency> --> 버전을 2.2.0 으로 하면 실행은 됩니다. <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.2.0</version> </dependency> 콘솔에 출력된 로그내용 입니다. 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 서버 버전 이름: Apache Tomcat/9.0.35 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: Server 빌드 시각: May 5 2020 20:36:20 UTC 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: Server 버전 번호: 9.0.35.0 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 운영체제 이름: Windows 10 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 운영체제 버전: 10.0 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 아키텍처: amd64 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 자바 홈: C:\Program Files\Java\jdk-13 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: JVM 버전: 13+33 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: JVM 벤더: Oracle Corporation 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_BASE: D:\1project\java\dunpage\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_HOME: C:\tomcat9 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 명령 행 아규먼트: -Dcatalina.base=D:\1project\java\dunpage\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 명령 행 아규먼트: -Dcatalina.home=C:\tomcat9 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 명령 행 아규먼트: -Dwtp.deploy=D:\1project\java\dunpage\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 6월 30, 2020 8:59:57 오전 org.apache.catalina.startup.VersionLoggerListener log INFO: 명령 행 아규먼트: -Dfile.encoding=UTF-8 6월 30, 2020 8:59:57 오전 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: APR 버전 [1.7.0]을(를) 사용한, APR 기반 Apache Tomcat Native 라이브러리 [1.2.24]을(를) 로드했습니다. 6월 30, 2020 8:59:57 오전 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: APR 용량정보들: IPv6 [true], sendfile [true], accept filters [false], random [true]. 6월 30, 2020 8:59:57 오전 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: APR/OpenSSL 설정: useAprConnector [false], useOpenSSL [true] 6월 30, 2020 8:59:57 오전 org.apache.catalina.core.AprLifecycleListener initializeSSL INFO: OpenSSL이 성공적으로 초기화되었습니다: [OpenSSL 1.1.1g 21 Apr 2020] 6월 30, 2020 8:59:57 오전 org.apache.coyote.AbstractProtocol init INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다. 6월 30, 2020 8:59:59 오전 org.apache.catalina.startup.Catalina load INFO: [3,396] 밀리초 내에 서버가 초기화되었습니다. 6월 30, 2020 9:00:00 오전 org.apache.catalina.core.StandardService startInternal INFO: 서비스 [Catalina]을(를) 시작합니다. 6월 30, 2020 9:00:00 오전 org.apache.catalina.core.StandardEngine startInternal INFO: 서버 엔진을 시작합니다: [Apache Tomcat/9.0.35] 6월 30, 2020 9:00:01 오전 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom WARNING: [SHA1PRNG] 알고리즘을 사용하여, 세션 ID를 생성하기 위한 SecureRandom 객체를 생성하는데, [1,237] 밀리초가 소요됐습니다. 6월 30, 2020 9:00:01 오전 org.apache.catalina.core.ContainerBase startInternal SEVERE: 자식 컨테이너를 시작 중 실패했습니다. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ... 33 more Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:236) at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169) at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140) ... 34 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:233) ... 36 more Caused by: java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1470) at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1371) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1378) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1209) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1172) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:719) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:239) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:169) at java.base/java.util.jar.JarFile.<init>(JarFile.java:346) ... 42 more 6월 30, 2020 9:00:01 오전 org.apache.catalina.core.ContainerBase startInternal SEVERE: 자식 컨테이너를 시작 중 실패했습니다. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 13 more Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 21 more Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ... 33 more Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:236) at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169) at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140) ... 34 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:233) ... 36 more Caused by: java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1470) at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1371) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1378) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1209) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1172) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:719) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:239) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:169) at java.base/java.util.jar.JarFile.<init>(JarFile.java:346) ... 42 more 6월 30, 2020 9:00:01 오전 org.apache.catalina.startup.Catalina start SEVERE: 필수 항목인 서버 구성요소가 제대로 시작되지 못하여, Tomcat이 시작될 수 없습니다. org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 13 more Caused by: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 13 more Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 21 more Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.JarResourceSet@4dd02341]을(를) 초기화하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ... 33 more Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:236) at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169) at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140) ... 34 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:233) ... 36 more Caused by: java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1470) at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1371) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1378) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1209) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1172) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:719) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:239) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:169) at java.base/java.util.jar.JarFile.<init>(JarFile.java:346) ... 42 more 6월 30, 2020 9:00:01 오전 org.apache.coyote.AbstractProtocol pause INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 일시 정지 중 6월 30, 2020 9:00:01 오전 org.apache.catalina.core.StandardService stopInternal INFO: 서비스 [Catalina]을(를) 중지시킵니다. 6월 30, 2020 9:00:01 오전 org.apache.coyote.AbstractProtocol destroy INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 소멸시킵니다. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/C:/tomcat9/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release
-
미해결React로 NodeBird SNS 만들기
helmet ssr
서버를 실행하고 처음으로 페이지로 들어가면 리덕스 스테이트에는 분명히 있는데 singlePost.User.nickname이 없다는 오류가 뜹니다. 이 상태에서 새로고침을 누르면 오류가 사라지고 정상적으로 페이지가 작동됩니다. helmet의 ssr에 문제가 있는 것 같은데 어떻게 고쳐야 하나요?? 참고로 react-helmet은 최신버전이고 그에따라 import할 때도 {Helmet}으로 가져왔습니다
-
미해결애플 웹사이트 인터랙션 클론!
저는 pin이 안나올까요 ㅠㅠ
@charset 'utf-8'; html { font-family: 'Noto Sans KR', sans-serif; font-size: 14px; } body { overflow-x: hidden; color: rgb(29, 29, 31); letter-spacing: -0.05em; background: white; } p { line-height: 1.6; } a { color: rgb(29, 29, 31); text-decoration: none; } .global-nav { position: absolute; top: 0; left: 0; width: 100%; height: 44px; padding: 0 1rem; } .local-nav { position: absolute; top: 45px; left: 0; width: 100%; height: 52px; padding: 0 1rem; border-bottom: 1px solid #ddd; } .global-nav-links, .local-nav-links { display: flex; align-items: center; max-width: 1000px; height: 100%; margin: 0 auto; } .global-nav-links { justify-content: space-between; } .local-nav-links .product-name { margin-right: auto; font-size: 1.2rem; } .local-nav-links a { font-size: 0.8rem; } .local-nav-links a:not(.product-name) { margin-left: 2em; } .scroll-section { padding-top: 50vh; border: 3px solid red; } #scroll-section-0 h1 { font-size: 4rem; text-align: center; } .main-message { top: 35vh; display: flex; align-items: center; justify-content: center; margin: 5px 0; height: 3em; font-size: 2.5rem; opacity: 0; } .main-message small { display: block; font-size: 1.2rem; margin-bottom: 0.5em; } #scroll-section-2 .main-message { font-size: 3.5rem; } .desc-message { font-weight: bold; width: 50%; } .pin { width: 1px; height: 100px; background: rgb(29, 29, 31); } #scroll-section-2.b { top: 10%; left: 40%; } #scroll-section-2.c { top: 15%; left: 45%; } .mid-message { max-width: 1000px; margin: 0 auto; padding: 0 1rem; font-size: 2rem; color: #888; } .mid-message strong { color: rgb(29, 29, 31); } .canvas-caption { max-width: 1000px; margin: 0 auto; padding: 0 1rem; color: #888; font-size: 1.2rem; } .footer { display: flex; align-items: center; justify-content: center; height: 7rem; color: white; background: darkorange; } .main-message p { line-height: 1.2; font-weight: bold; text-align: center; } .description { max-width: 1000px; margin: 0 auto; padding: 0 1rem; font-size: 1.2rem; color: #888; } .description strong { float: left; margin-right: 0.2em; font-size: 3rem; color: rgb(29, 29, 31); } .sticky-elem { position: fixed; left: 0; width: 100%; display: none; } #show-scene-0 #scroll-section-0 .sticky-elem, #show-scene-1 #scroll-section-1 .sticky-elem, #show-scene-2 #scroll-section-2 .sticky-elem, #show-scene-3 #scroll-section-3 .sticky-elem { display: block; } @media (min-width:1024px) { #scroll-section-0 h1 { font-size: 9vw; } .main-message { font-size: 2rem; } .description { font-size: 2rem; } .description strong { font-size: 6rem; } #scroll-section-2 .main-message { font-size: 6vw; } .main-message small { font-size: 1.5vw; } .desc-message { width: 20%; } #scroll-section-2.b { top: 20%; left: 53%; } #scroll-section-2.c { left: 55%; } .mid-message { font-size: 4vw; } canvas-caption { font-size: 2rem; } } <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>AirMug Pro</title> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;900&display=swap" rel="stylesheet"> <link rel="stylesheet" href="css/default.css"> <link rel="stylesheet" href="css/main.css"> </head> <body> <div class="container"> <nav class="global-nav"> <div class="global-nav-links"> <a href="#" class="global-nav-item">Rooms</a> <a href="#" class="global-nav-item">Ideas</a> <a href="#" class="global-nav-item">Storeds</a> <a href="#" class="global-nav-item">Contact</a> </div> </nav> <nav class="local-nav"> <div class="local-nav-links"> <a href="#" class="product-name">Airmug pro</a> <a href="">개요</a> <a href="">제품사양</a> <a href="">구입하기</a> </div> </nav> <section class="scroll-section" id="scroll-section-0"> <h1>AirMug Pro</h1> <div class="sticky-elem main-message a"> <p>온전히 빠져들게 하는<br>최고급 세라믹</p> </div> <div class="sticky-elem main-message b"> <p>주변 맛을 느끼게 해주는<br>주변 맛 허용 모드</p> </div> <div class="sticky-elem main-message c"> <p>온종일 편안한<br>맞춤형 손잡이</p> </div> <div class="sticky-elem main-message d"> <p>새롭게 입가를<br>찾아온 매혹</p> </div> </section> <section class="scroll-section" id="scroll-section-1"> <p class="description"> <strong>보통 스크롤 영역</strong> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nam praesentium ducimus odio, eveniet eaque soluta aliquid animi unde inventore est sapiente fugit laboriosam voluptatum ipsum quidem illum molestiae obcaecati ut voluptas assumenda quae. Rerum hic, odio unde eum quod? Inventore eius provident vel impedit veniam incidunt at voluptatibus facere odio totam iure ipsam libero, sit eligendi nostrum velit laborum quaerat ipsum ut consectetur. Quos voluptatibus pariatur, accusantium laborum iusto, impedit. Ex enim veritatis nesciunt reprehenderit architecto reiciendis amet cum nihil aut beatae itaque, nulla labore eum quaerat facilis dolorem veniam! Consequatur aliquam placeat dicta voluptas nam recusandae quibusdam nostrum, culpa! Blanditiis in ipsa quaerat dolorem tempore velit, deleniti, excepturi placeat eum facilis officia recusandae praesentium nesciunt porro quibusdam debitis consequuntur, nobis saepe? Fugit voluptates consectetur sapiente maxime dolore, hic, esse laborum expedita eligendi natus cum dolor pariatur qui dicta, minus. Repudiandae architecto, sit et similique odio corrupti repellat. Id iusto perferendis dolores quos non aliquid quis officia, voluptatibus odio. Tenetur fugit repellat quas, consectetur explicabo nihil labore optio molestias, omnis minima dolorum! Expedita corporis beatae, inventore porro nostrum tempora rem. Eligendi, rerum? Quaerat eaque deserunt animi, voluptatibus, quis accusantium fuga recusandae temporibus deleniti ipsa ut laborum, magni cupiditate, illo. Corporis. </p> </section> <section class="scroll-section" id="scroll-section-2"> <div class="sticky-elem sticky-elem-canvas"> <canvas id="video-canvas-1" width="1920" height="1080"></canvas> </div> <div class="sticky-elem main-message a"> <p> <small>편안한 촉감</small> 입과 하나 되다 </p> </div> <div class="sticky-elem desc-message b"> <p> 편안한 목넘김을 완성하는 디테일한 여러 구성 요소들, 우리는 이를 하나하나 새롭게 살피고 재구성하는 과정을 거쳐 새로운 수준의 머그, AirMug Pro를 만들었습니다. 입에 뭔가 댔다는 감각은 어느새 사라지고 오롯이 당신과 음료만 남게 되죠. </p> <div class="pin"></div> </div> <div class="sticky-elem desc-message c"> <p> 디자인 앤 퀄리티 오브 스웨덴,<br>메이드 인 차이나 </p> <div class="pin"></div> </div> </section> <section class="scroll-section" id="scroll-section-3"> <p class="mid-message"> <strong>Retina 머그</strong><br> 아이디어를 광활하게 펼칠<br> 아름답고 부드러운 음료 공간. </p> <canvas class="image-blend-canvas" width="1920" height="1080"></canvas> <p class="canvas-caption"> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eveniet at fuga quae perspiciatis veniam impedit et, ratione est optio porro. Incidunt aperiam nemo voluptas odit quisquam harum in mollitia. Incidunt minima iusto in corporis, dolores velit. Autem, sit dolorum inventore a rerum distinctio vero illo magni possimus temporibus dolores neque adipisci, repudiandae repellat. Ducimus accusamus similique quas earum laborum. Autem tempora repellendus asperiores illum ex! Velit ea corporis odit? Ea, incidunt delectus. Sapiente rerum neque error deleniti quis, et, quibusdam, est autem voluptate rem voluptas. Ratione soluta similique harum nihil vel. Quas inventore perferendis iusto explicabo animi eos ratione obcaecati. </p> </section> <footer class="footer">2020 영주마실</footer> </div> <script src="js/main.js"></script> </body> </html> (() => { //전역변수를 피하기 위해서 씀. (function()) let yOffset = 0; // window.pageYOffset 대신 쓸 변수 let prevScrollHeight = 0; //현재 스크롤 위치(yOffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; //현재 활성화된(눈 앞에 보고있는) 씬(scroll-section) let currenYOffset = yOffset - prevScrollHeight; let enterNewScene = false; // 새로운 씬에 들어갔다. // sceneInfo 추가내용 적용 후 const sceneInfo = [ { // 0 type: 'sticky', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-0'), messageA: document.querySelector('#scroll-section-0 .main-message.a'), messageB: document.querySelector('#scroll-section-0 .main-message.b'), messageC: document.querySelector('#scroll-section-0 .main-message.c'), messageD: document.querySelector('#scroll-section-0 .main-message.d') }, values: { messageA_opacity_in: [0, 1, { start: 0.1, end: 0.2 }], messageB_opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messageC_opacity_in: [0, 1, { start: 0.5, end: 0.6 }], messageD_opacity_in: [0, 1, { start: 0.7, end: 0.8 }], messageA_translateY_in: [20, 0, { start: 0.1, end: 0.2 }], messageB_translateY_in: [20, 0, { start: 0.3, end: 0.4 }], messageC_translateY_in: [20, 0, { start: 0.5, end: 0.6 }], messageD_translateY_in: [20, 0, { start: 0.7, end: 0.8 }], messageA_opacity_out: [1, 0, { start: 0.25, end: 0.3 }], messageB_opacity_out: [1, 0, { start: 0.45, end: 0.5 }], messageC_opacity_out: [1, 0, { start: 0.65, end: 0.7 }], messageD_opacity_out: [1, 0, { start: 0.85, end: 0.9 }], messageA_translateY_out: [0, -20, { start: 0.25, end: 0.3 }], messageB_translateY_out: [0, -20, { start: 0.45, end: 0.5 }], messageC_translateY_out: [0, -20, { start: 0.65, end: 0.7 }], messageD_translateY_out: [0, -20, { start: 0.85, end: 0.9 }] } }, { // 1 type: 'normal', // heightNum: 5, // type normal에서는 필요 없음 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-1') } }, { // 2 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-2'), messageA: document.querySelector('#scroll-section-2 .a'), messageB: document.querySelector('#scroll-section-2 .b'), messageC: document.querySelector('#scroll-section-2 .c'), pinB: document.querySelector('#scroll-section-2 .b .pin'), pinC: document.querySelector('#scroll-section-2 .c .pin') }, values: { messageA_translateY_in: [20, 0, { start: 0.15, end: 0.2 }], messageB_translateY_in: [30, 0, { start: 0.6, end: 0.65 }], messageC_translateY_in: [30, 0, { start: 0.87, end: 0.92 }], messageA_opacity_in: [0, 1, { start: 0.25, end: 0.3 }], messageB_opacity_in: [0, 1, { start: 0.6, end: 0.65 }], messageC_opacity_in: [0, 1, { start: 0.87, end: 0.92 }], messageA_translateY_out: [0, -20, { start: 0.4, end: 0.45 }], messageB_translateY_out: [0, -20, { start: 0.68, end: 0.73 }], messageC_translateY_out: [0, -20, { start: 0.95, end: 1 }], messageA_opacity_out: [1, 0, { start: 0.4, end: 0.45 }], messageB_opacity_out: [1, 0, { start: 0.68, end: 0.73 }], messageC_opacity_out: [1, 0, { start: 0.95, end: 1 }], pinB_scaleY: [0.5, 1, { start: 0.6, end: 0.65 }], pinC_scaleY: [0.5, 1, { start: 0.87, end: 0.92 }] } }, { // 3 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-3'), canvasCaption: document.querySelector('.canvas-caption') }, values: { } } ]; function setLayout() { //각 스크롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === 'sticky') { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; }else if(sceneInfo[i].type === 'nomarl'){ sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } yOffset = window.pageYOffset; let totalScrollHeight = 0; for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute('id', `show-scene-${currentScene}`); } function calcValues(values, currentYOffset) { let rv; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 if (values.length === 3) { // start ~ end 사이에 애니메이션 발생 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if (currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd) { rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; // 안써주면 undefined } // playAnimation 추가내용 적용 후 function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; switch (currentScene) { case 0: // console.log('0 play'); if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.42) { // in objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.62) { // in objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.82) { // in objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_out, currentYOffset)}%, 0)`; } break; case 2: // console.log('2 play'); if (scrollRatio <= 0.32) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.67) { // in objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } else { // out objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } if (scrollRatio <= 0.93) { // in objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } else { // out objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } break; case 3: // console.log('3 play'); break; } } function scrollLoop() { enterNewScene = false; prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight) { enterNewScene = true; currentScene++; document.body.setAttribute('id', `show-scene-${currentScene}`); } if (yOffset < prevScrollHeight) { enterNewScene = true; if (currentScene === 0) return; // 브라우저 바운스 효과로 인해 마이너스 되는것을 방지 currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`); } if (enterNewScene) return; playAnimation(); } window.addEventListener('resize', setLayout); //세로크기에 따라 height 반응형 window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load', setLayout); window.addEventListener('resize', setLayout); setLayout(); })();
-
해결됨현존 최강 크롤링 기술: Scrapy와 Selenium 정복
scrapy startproject ecommerce 썼는데 error가 뜨고 폴더 생성이 안돼요.
어떻게 해결할수 있을까요?
-
해결됨더 자바, Java 8
강의 잘못올라온것 같아요.ㅜㅜ
4강 람다 표현식과 내용이 같아요 ㅜㅜ 처음엔 복습인줄 알았는데... 4강이랑 5강이랑 비교했을때 다를게 없어요..ㅜㅜ; 완전히 똑같아여..ㅜㅜ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
질문드립니다
오늘 수강신청 후 막 시작한 학생입니다. 혹시 구글클라우드 플랫폼 사용하지 않고, 파이참으로 따라할 수도 있는지 질문 드립니다. GPU는 gtx1080 사용 중 입니다. 실질적으로 파이참을 많이 사용할것 같아서 질문 드립니다.
-
미해결React로 NodeBird SNS 만들기
newPost.addHashtags에 대해서 질문드립니다.
post 와 hashtag의 관계 설정에 의해 posthashtag table까지 만들어졌는데, post를 생성하는 router에서 newPost.addHashtag 함수가 undefined라는 오류가 발생하고 있습니다. 혹시 오타가 있는지 확인해보았는데 이상이 없어서 어떨때 오류가 발생하는지 알수 있을까요??
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
Android sdkmanager 액세스 거부 오류
안녕하세요 강의수강후, 꼭 따라해보고 싶은데.. flutter 설치가 안되서 못하고 있는 상황이라, 혹시 비슷한 이슈 보셨는지 여쭐 수 있을까하여 질문 올립니다. 하기 그림과 같이, flutter doctor --android-licenses 실행시, android sdkmanger가 찾아지는데, 액세스가 계속 거부되어서 설치를 못하고 있습니다.. 인터넷에 유사한 케이스도 별로 없어니와, 'hide obsolete packages' 체크해제해서 Android SDK Tools (Obsolete) 살펴보는 것도 안통하네요 ㅠㅠ 혹시나 어떻게 설치할 수 있는 방법이 없을까 질문드립니다
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
ProfileReport(df) 시 FileNotFoundError 발생
(사진)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
useEffect오류
React Hook "useEffect" is called in function "landingpage" which is neither a React function component or a custom React Hook function react-hooks/rules-of-hooks 위와같은 오류가 발생하는데, 어떻게 해야하나요?