首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将应用于滚动的css动画效果添加到特定的div?

问如何将应用于滚动的css动画效果添加到特定的div?
EN

Stack Overflow用户
提问于 2020-08-01 15:42:07
回答 2查看 277关注 0票数 2

其思想是有5个部分,称为section1,section2等。

每个部分都有自己的形象。

当用户滚动时,图像应该“淡出”并通过更改不透明度进入,并且使用transform3D会有轻微的放大/退出效果。

我试图获得与此相同的结果:

http://www.moxhe.com.au/

我试图开始一些事情是这样

代码语言:javascript
复制
  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(窗口)。我尝试过使用jQuery('#section1'),但是如果我这样做,什么都不会发生。

我尝试添加了一个transform3D效果,如在http://www.moxhe.com.au/上显示,但我也在努力使它工作,应该有一个小的减少滚动向下滚动和小的增加滚动向上滚动,只有当用户在一个特定的div与bg图像滚动。

长话短说,我需要使css动画与http://www.moxhe.com.au/相同,但我很难将css效果应用到页面/ div的特定部分,ID应该与整个页面相同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-01 16:10:55

您可以尝试使用只适用于特定滚动值的转换的条件包装转换:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2020-08-01 16:03:34

我做了个小提琴才知道你在哪。我已经将#section1封装到#section1_container中,并在其上应用overflow: hidden来限制动画的位置。

html

代码语言:javascript
复制
<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

代码语言:javascript
复制
#section1_container{
  overflow: hidden;
}

我认为你也想开始动画,在那里的部分是可见的或什么的。

因此,您可以使用$("#section1_container").offset().top从文档的顶部进行偏移,如果该属性高于您的scroll = jQuery(this).scrollTop();,则可以启动动画。你可以通过$("#section1_container").height()阻止它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63207056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档