2017-10-07 22 views
0

スクロールマジックを使用してコンテンツをスクロールし、コンテンツの一部を固定します。ここではHTMLは次のとおりです。固定コンテンツの下にスクロール可能なテキストが表示されないようにする

<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> 

これはJavascriptを次のとおりです。ここで

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

はjsfiddleです:https://jsfiddle.net/mddc/93sagkab/27/

'の.text' は#pinコンテンツの下まで移動すると、あなたがそれを見ることができます。 #pinにあるときにCSSを使用して.textを表示させないにはどうすればよいですか?山を背景にした現在のデザインを維持する必要があります。

答えて

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 { 
    height: 1000px; 
    transition: opacity 150ms ease-out; //Add this 
} 

その後.fadeスタイルを定義します。

.text.fade { 
    opacity: 0; 
} 

このfiddleを参照してください。

+0

私を助けてくれてありがとう!これはうまくいくわけではありません。私は一例として一つの段落を使った。あまりにも単純すぎて申し訳ありません。私は実際には複数の段落があり、それらはすべて一緒に消えます。私はそれらを一つずつ消滅させたいと思っています。このリンクを参照してください:https://jsfiddle.net/mddc/93sagkab/25/ – curious1

+1

何か[このような](https://jsfiddle.net/93sagkab/28/)は動作しますか?多少の微調整が必​​要かもしれないと思うが、そのアイディアは良いかもしれない。 '.text'でネストされた要素をループし、それらをオフセットでコントローラに追加するだけです。 – zgood

+0

こんにちはzgood、あなたのフォローアップのためにあまりにも多くの!!!私はあなたのアイデアをコピーし、それを働かせました。ベスト。 – curious1

関連する問題