javascript - 仅限原生 JavaScript - 滚动到视口(viewport)时元素不透明度发生变化

标签 javascript scroll

我试图使页面上的元素在滚动时淡入。够简单吧?不适合我。

HTML 是一个标准列表。 CSS 在滚动之前将所有元素的不透明度设置为 0。

我尝试仅使用 native JavaScript。

    // get current page body
    var actBody = document.getElementById('acts-body');

    // on scroll function
    actBody.onscroll = function(){

        // get screen height
        var screenPosition = window.innerHeight;
        // get all text elements
        var artistName = document.getElementsByClassName('artist');

        // loop through all elements
        for(var i = 0; i < artistName.length; i++){

            // get each elements position from top
            var positionFromTop = artistName[i].getBoundingClientRect().top;

            // if element is in viewport add class
            if(positionFromTop - screenPosition <= 0){
                artistName[i].classList.add('txt-fadeIn');
            }
            else{
                artistName[i].classList.remove('txt-fadeIn');
            }

            console.log(artistName[i]);
        }

最佳答案

i think it should solve it

            if(screenPosition  - positionFromTop  <= 0){
            artistName[i].classList.add('txt-fadeIn');
        }

关于javascript - 仅限原生 JavaScript - 滚动到视口(viewport)时元素不透明度发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52670494/

相关文章:

c# - 如何使 PictureBox 可滚动

css - 元素逐一滚动

javascript - 使用jquery向表添加动态href

javascript - 如果选中复选框,则触发事件javascript

javascript - chrome 部分截图

javascript - 如何知道 <div> 标签的滚动事件结束

java - 水平卡住一个表列

javascript - ts 无法通过 TypeScript 找到名称 'async'

javascript - 只有 ngRepeat 中的第一个元素是动画的

ajax - 滚动 Facebook Canvas