javascript - 仅原生 JavaScript - 滚动到视口时元素不透明度发生变化
问题描述
我试图让页面上的元素在滚动时淡入。够容易吧?不适合我。
HTML 是一个标准列表。CSS 在滚动之前将所有元素设置为不透明度 0。
我正在尝试仅使用本机 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]);
}
解决方案
我认为它应该解决它
if(screenPosition - positionFromTop <= 0){
artistName[i].classList.add('txt-fadeIn');
}
推荐阅读
- c# - 用户登录后尝试隐藏导航栏中的按钮时出现错误堆栈溢出
- vba - 无法在无头模式下使用 vba/selenium 从网页收集价格
- java - Dagger 与 Guice 中的运行时值注入
- server - 从基本映像配置简化服务器设置
- django - Slack SocialAccount 错误 bad_redirect_uri django-allauth
- java - 基于任务的 Gradle 条件依赖
- android - 如何在包含 ViewPager 的 Activity 上实现 ViewBinding
- asp.net-core - 如何在一台服务器上部署 N 层 ASP.NET Core 应用程序?
- matplotlib - matplotlib 使用循环器在循环中使用相同的颜色
- flutter - 使用 Dart / Flutter 在现有 PDF 表单中填充数据