亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將應用于滾動的CSS動畫效果添加到僅特定的div?

如何將應用于滾動的CSS動畫效果添加到僅特定的div?

楊魅力 2022-12-18 16:31:46
這個想法是有 5 個部分,分別命名為 section1、section2 等。每個部分都有自己的圖像。當用戶滾動時,圖像應該通過改變不透明度“淡出”和“淡入”,并且使用 transform3D 會有輕微的放大/縮小效果。我試圖達到與此相同的結果:http://www.moxhe.com.au/我嘗試開始的事情是這樣的jQuery(document).ready(function() {        jQuery(window).scroll(function(event) {            let scroll = jQuery(this).scrollTop();            let opacity = 1 - (scroll / 1000);            var x = (scroll / 100);            if (opacity >= 0) {                jQuery('#section1').css({'opacity': opacity , 'transform': "scale(" + x + "," + x + ")"});            }        });    });現在,這確實會在您滾動時產生不透明度變化 - 問題是,它適用于滾動時的整個頁面,但我希望只有當您的用戶在 ID 為 section1 的 div 中/周圍滾動時才會發生效果我知道它應用于整個窗口,因為 .scroll 應用于 jQuery(window)。我試過使用 jQuery('#section1') 但如果我這樣做什么也不會發生。我已經嘗試添加一個 transform3D 效果,如http://www.moxhe.com.au/所示,但我也在努力讓它工作,只有當用戶四處滾動時,向下滾動應該有小幅減少,向上滾動應該有小幅增加帶有 bg 圖像的特定 div。長話短說,我需要制作與http://www.moxhe.com.au/相同的 css 動畫,但我正在努力將 css 效果應用于頁面的特定部分/div,其 ID 應為整個頁面.
查看完整描述

2 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您可以嘗試使用僅在特定滾動值應用轉換的條件來包裝您的轉換:


var sectionHeight = $('.section').height();

if(document.documentElement.scrollTop>0 && document.documentElement.scrollTop<sectionHeight){

    //apply transformation here

}

else if(document.documentElement.scrollTop>sectionHeight && document.documentElement.scrollTop<(sectionHeight*2)){

    //apply transformation here

}

...

//Number of if conditions = number of sections you have


查看完整回答
反對 回復 2022-12-18
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我做了一個小提琴來了解你在哪里。我已經將 into 包裹起來#section1并#section1_container應用于overflow: hidden它以限制動畫的位置。


網頁格式


<div id="section1_container">

<div id="section1">

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloremque sapiente dolor ex magnam eveniet! Ipsum officia quidem possimus iste expedita temporibus nobis praesentiumconsectetur adipisicing elit. Doloremque sapiente dolor ex magnam eveniet! Ipsu

</div>

</div>

CSS


#section1_container{

  overflow: hidden;

}

我認為您還想在該部分可見的地方開始動畫。


所以你有$("#section1_container").offset().top它會給你從文檔頂部的偏移量,如果這個屬性高于你的scroll = jQuery(this).scrollTop();那么你就可以開始動畫了。你可以阻止它$("#section1_container").height()。


查看完整回答
反對 回復 2022-12-18
  • 2 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號