JS 37 - 滚动网页即自动浮现元素

大家好!

今天要实作网页滚动到特定位置时,自动浮现元素的效果。
我们进入今天的主题吧!


样式

[data-revealing] {
    opacity: 0;
}

[data-revealing~="float-in"][data-revealing~="top"] {
    transform: translateY(-50%);
}

[data-revealing~="float-in"][data-revealing~="bottom"] {
    transform: translateY(50%);
}

[data-revealed][data-revealing~="float-in"] {
    opacity: 1;
    transform: translate(0);
    transition: opacity 1s cubic-bezier(0.25, 0.5, 0.5, 1),
                transform 1s cubic-bezier(0.25, 0.5, 0.5, 1);
}

程序码

(function () {
    Felix(window).on('load', reveal);
    Felix(window).on('scroll', reveal);
    Felix(window).on('resize', reveal);
    function reveal() {
        const els = Felix('[data-revealing]:not([data-revealed])');
        Felix.forEach(els, function (el) {
            const pos = el.getBoundingClientRect().top;
            const params = el.dataset.revealing.split(' ');
            if (window.pageYOffset + innerHeight > elementPosition) {
                setTimeout(function (element) {
                    element.setAttribute('data-revealed', '');
                }, 750 + (parseInt(paremeters[2]) || 0), elements[i]);
            }
        });
        if (Felix('[data-revealing][data-revealed]').length < els.length) return;
        Felix(window).off('load', reveal);
        Felix(window).off('scroll', reveal);
        Felix(window).off('resize', reveal);
    }
})();

实测

范例连结制作中。


差不多也到尾声了。
如果对文章有任何疑问,也欢迎在下方提问和建议!
我是 Felix,我们明天再见!


<<:  Day37 - Windows 提权(8)-提权手法统整 Password 密码相关

>>:  Extra07 - Jest - 单元测试框架

[13th][Day4] 容器四五事

检查container 进程/处理程序(process) ps -aux 恩 .... 是个非常乾净...

Python pyinstaller matplotlib 包装执行档无法执行

我使用pyinstaller套件包装执行档後,无法顺利开启绘图的部分 想请问一下应该使用什麽版本才可...

[区块链&DAPP介绍 Day30] 最後的总结

很快的地狱般的铁人赛终於要结束了,今天就来聊聊这30天的学习心得。 其实一开始挑选这个题目时,也是无...

在 Windows 10 上安装 Visual Studio Code EP1

前言 写程序,设定好 IDE,可以增加自己的效率,今天来纪录一下安装 Visual Studio C...

30天打造品牌特色电商网站 Day.15 微互动设计按钮实作(1)

网站的各种按钮及动态互动是UX使用者经验最直接接触的地方,透过设计能让使用者直觉操作,也能带来良好的...