javascript - 当另一个元素滚动到视口中时向按钮添加类
问题描述
我有一个静态按钮和一个滚动元素。当可滚动元素进入浏览器视口时,我希望静态按钮获得一个类(例如下划线)。我现在有这个,但它不起作用:
function isScrolledIntoView(elem) {
var docViewTop = jQuery(window).scrollTop();
var docViewBottom = docViewTop + jQuery(window).height();
var elemTop = jQuery(elem).offset().top;
var elemBottom = elemTop + jQuery(elem).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
jQuery(window).scroll(function () {
jQuery('#my-scrolling-element').each(function () {
if (isScrolledIntoView(this) === true) {
jQuery('#my-static-button').addClass('my-class');
}
});
});
任何帮助将非常感激
解决方案
如果您想将类添加到输入类型的元素,那么下面的代码将起作用。否则请给我一些代码片段。如果对您有帮助,请采纳答案。
jQuery(window).scroll(function() {
element = jQuery('#my-scrolling-element');
if (isScrolledIntoView(element) === true) {
jQuery('#my-static-button')
//if the type of element is input then it will work.
$("input[id^='my-scrolling-element_']").addClass('my-class');
} else {
jQuery('#my-static-button').removeClass('my-class');
}
});
//OR
jQuery(window).scroll(function() {
element = jQuery('#my-scrolling-element');
if (isScrolledIntoView(element) === true) {
jQuery('#my-static-button').addClass('my-class');
} else {
jQuery('#my-static-button').removeClass('my-class');
}
});
推荐阅读
- javascript - 响应数据未定义
- javascript - 我想使用 javascript 显示 AM / PM
- java - Firebase 出现内部错误。[7:]
- domain-driven-design - 集合不变量的总和阻止聚合根创建/更新
- vba - 为什么第一轮后vba循环失败?
- flutter - 寻找一个很好的示例工作代码,用于从 Flutter 中的 URL 下载任何文件。如果它带有本机下载器,那么这将非常好
- python - sqlite python,嵌套循环停止主循环
- c# - 在 C# 中使用长数据类型计算 2^N,其中 N 为 1929439432949324
- linux - 如何在 CentOS 中获取另一个挂载目录的容量和可用空间
- javascript - 尝试在 bash 中启动 npm 时出现 mongo 错误