我正在使用jQuery将类.in-view
添加到视口中当前显示的div
中(通过此jQuery-viewport-checker脚本)。
我想获取当前具有类in-view
的div的ID名称,并将其作为类名添加到body
。
这是我到目前为止所得到的。我已经将活动ID添加到变量中,看看我是否可以将其输出到控制台,但到目前为止还没有运气!控制台只输出'undefined'。
jQuery(document).ready(function() {
jQuery('.mydiv').viewportChecker({
classToAdd: 'in-view' // This adds the class to any div that is in the viewport
});
var activeId = jQuery('.in-view').attr('id');
window.console&&console.log(activeId, "Active div ID"); // Testing to see if variable contains the ID
});
答案 0 :(得分:1)
在您致电viewportChecker
后,显示in-view div的代码正在立即。显然,当时没有看到.mydiv
(或者插件还没有机会在视图中标记它)。
我还没有使用该插件,但是看the docs,您想要使用callbackFunction
选项:
jQuery(document).ready(function() {
jQuery('.mydiv').viewportChecker({
classToAdd: 'in-view', // This adds the class to any div that is in the viewport
callbackFunction: function(elem, action) {
$(document.body).toggleClass(elem.attr("id"), action === "add");
}
});
});
在action
为"add"
或"remove"
的情况下调用回调,因此我使用action === "add"
来决定是添加类还是删除它。