为了账号安全,请及时绑定邮箱和手机立即绑定

滚动到当前屏时,当前屏的数据才显现,这种效果是怎么实现的?

滚动到当前屏时,当前屏的数据才显现,这种效果是怎么实现的?

素胚勾勒不出你 2018-10-17 13:14:45
类似这种的效果:https://ant.design/index-cn当滚动到第二屏时,第二屏的数据才从左右两边出现,滚动到第三屏时,第二屏的数据渐渐消失,第三屏的数据出现。请问这种效果叫什么?它的实现思路是怎样的?
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

可以看到这个页面是用 React 写的,所以你需要安装 React Developer Tools 这个插件。
实现这个效果的是 <ScrollOverPack /> 这个组件:

https://img1.sycdn.imooc.com//5bee25e00001ccd815140405.jpg

发现有个 scrollEvent(props.scrollEvent()) 函数,应该就是这个函数控制的。

控制台输入 $r.props.scrollEvent

https://img1.sycdn.imooc.com//5bee25eb0001e95307070144.jpg

之后就可以看到实现的函数:

    function onScrollEvent(e) {      var clientHeight = document.documentElement.clientHeight;      
    var header = document.getElementById('header');      if (e.pageY >= clientHeight) {        
    if (header.className.indexOf('home-nav-bottom') < 0) {
          header.className += ' home-nav-bottom';
        }
      } else if (header.className.indexOf('home-nav-bottom') >= 0) {
        header.className = header.className.replace(/home-nav-bottom/ig, '');
      }
    }

其实就是判断是否滑动到对应的位置,然后添加或者删除 CSS 类名,动画是 CSS 实现的。


查看完整回答
反对 回复 2018-11-16
  • 1 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信