javascript - 滚动到特定 id ReactJS 时添加类
问题描述
我试图在窗口顶部滚动到特定 ID 时添加一个类,并在滚动回顶部时删除类。我是 ReactJs 的新手,不确定如何做到这一点。
window.onscroll = function() {scrollFunction()};
scrollFunction() {
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
document.getElementById("myID").className = "test";
} else {
document.getElementById("myID").className = "";
}
}
我如何在 React 中使用这样的东西?寻找一个简单的函数来处理这个
解决方案
您可以使用 var getBoundingClientRect 并计算可视元素!
我已经创建了stackblitz链接来解决您的问题!如果您需要进一步的帮助评论
componentDidMount() {
const getViewable = document.getElementById("start-editing");
const that = this;
window.addEventListener(
"scroll",
function(event) {
if (that.isInViewport(getViewable)) {
getViewable.classList.add("black");
getViewable.classList.remove("gold");
} else {
getViewable.classList.add("gold");
getViewable.classList.remove("black");
}
},
false
);
}
isInViewport = elem => {
var bounding = elem.getBoundingClientRect();
return (
bounding.top >= 0 &&
bounding.left >= 0 &&
bounding.bottom <=
(window.innerHeight || document.documentElement.clientHeight) &&
bounding.right <=
(window.innerWidth || document.documentElement.clientWidth)
);
};
推荐阅读
- python - 如何使用参数将整数值获取到带有 Python 连接器的 MySQL 数据库中
- database - “用户 ADMIN 对架构没有权限。” 联系您的应用管理员,使用 oracle apex 18.2 收到此错误
- python - 仅删除特定句号在文本中意外失败
- python - 无法导入“cv2”
- arrays - Ngfor 到数组并通过 ngif 访问
- android - Android read_external_storage 权限请求问题
- node.js - 没有收到 Axios 对前端的任何响应
- elasticsearch - ElasticSearch 搜索空字段
- python - 为什么我的多线程没有帮助加速?
- r - R:理解不同的图函数