2017-10-07 1 views
0

스크롤 마법을 사용하여 콘텐츠를 스크롤하고 콘텐츠의 일부를 고정합니다.고정 된 콘텐츠 아래에 스크롤 가능한 텍스트가 표시되지 않도록 설정합니다.

<div class="container"> 
    <div class="header"> 
    <div style="height:400px;"> 
    </div> 
    <div id="trigger1" style="min-height: 1px"></div> 
    <div id="pin" style="font-size: 30px; color: #fff;text-align:center;padding:30px 0;"> 
     This is header 
    </div> 
    </div> 
    <div class="text-container"> 
    <p class="text"> 
     Lorem Ipsum is simply .... 
    </p> 
    <p class="text"> 
     Lorem Ipsum is simply .... 
    </p> 
    <p class="text"> 
     Lorem Ipsum is simply .... 
    </p> 
    </div> 
</div> 

이 자바 스크립트입니다 : 여기

 $(function() { 
      var controller = new ScrollMagic.Controller({ 
       globalSceneOptions: { 
        triggerHook: 'onLeave' 
       } 
      }); 
      var scene = new ScrollMagic.Scene({triggerElement: "#trigger1"}) 
        .setPin("#pin") 
        .addTo(controller); 
     }); 

jsfiddle된다 '는 .text는'#pin 컨텐츠 아래 위로 이동하면 https://jsfiddle.net/mddc/93sagkab/27/

, 당신이 그것을 볼 수 있습니다 다음은 HTML입니다. #pin 이하일 때 .text을 표시하지 않으려면 CSS를 사용하려면 어떻게해야합니까? 나는 산을 배경으로 보여주는 현재의 디자인을 유지할 필요가있다.

답변

1

.text 요소에 클래스를 추가 할 수 있습니다. 이처럼 :

var scene = new ScrollMagic.Scene({triggerElement: "#trigger1"}) 
        .setPin("#pin") 
        .setClassToggle(".text", "fade") //Add a class called "fade" 
        .addTo(controller); 

그런 다음 .text 요소에 CSS의 transition을 정의합니다.

.text.fade { 
    opacity: 0; 
} 

fiddle를 참조하십시오

.text { 
    height: 1000px; 
    transition: opacity 150ms ease-out; //Add this 
} 

그런 다음 .fade 스타일을 정의합니다.

+0

나를 도와 주셔서 감사합니다! 이것은 잘 작동하지 않을 것입니다. 한 단락을 예제로 사용했습니다. 너무 단순 하다니 죄송합니다. 나는 실제로 여러 단락을 가지고 있으며, 그들은 모두 함께 사라집니다. 나는 그들을 하나씩 사라지게하기를 희망한다. 이 링크를 참조하십시오 : https://jsfiddle.net/mddc/93sagkab/25/ – curious1

+1

뭔가 [좋아요] (https://jsfiddle.net/93sagkab/28/)가 작동합니까? 어쩌면 약간의 조정이 필요 하겠지만 아이디어가 좋을 수도 있습니다. '.text'로 중첩 된 요소들을 반복하고 그것을 오프셋과 함께 컨트롤러에 추가하십시오. – zgood

+0

Hello zgood, 후속 조치에 대한 감사합니다. !!! 나는 당신의 아이디어를 복사하고 작동 시켰습니다. 베스트. – curious1

관련 문제