Jquery 可重用函数,用于在用户滚动到元素时将类添加到元素
我需要创建一个函数,当用户滚动到某个元素时,该函数会将一个类添加到该元素中。我知道让它工作的基本思想,但我不能工作的是创建函数,并以某种方式将它绑定到不同的元素 以下是我现在掌握的代码:Jquery 可重用函数,用于在用户滚动到元素时将类添加到元素,jquery,function,scroll,Jquery,Function,Scroll,我需要创建一个函数,当用户滚动到某个元素时,该函数会将一个类添加到该元素中。我知道让它工作的基本思想,但我不能工作的是创建函数,并以某种方式将它绑定到不同的元素 以下是我现在掌握的代码: $(document).ready(function(){ $.fn.showIcon = function() { var $elID = this; $(window).scroll(function() { var height = $(windo
$(document).ready(function(){
$.fn.showIcon = function() {
var $elID = this;
$(window).scroll(function() {
var height = $(window).height() / 1.25;
var offset = elID.offset().top - height;
if ($(window).scrollTop() >= offset) {
$(this).find(".img-responsive").addClass('show');
}
});
}
$('#icon-1').showIcon();
$('#icon-2').showIcon();
$('#icon-3').showIcon();
});
我得到的错误告诉我没有定义elID,所以很明显,函数开头的这一部分没有理解我的目标元素
这是我拥有的最新版本,但我尝试了一系列不同的方法来定位元素的ID,但运气不佳
所以我要做的是,当用户滚动到第1项、第2项或第3项时,会触发showIcon函数
感谢您的帮助,谢谢
////
下面是一个删除$elID变量的更新,但似乎$this部分不希望以我试图获取的元素为目标。我不知道如何获取要应用函数的元素
$(document).ready(function(){
$.fn.showIcon = function() {
$(window).scroll(function() {
var height = $(window).height() / 1.25;
var offset = $(this).offset().top - height;
if ($(window).scrollTop() >= offset) {
$(this).find(".img-responsive").addClass('show');
}
});
}
$('#icon-1').showIcon();
$('#icon-2').showIcon();
$('#icon-3').showIcon();
});
你对上下文有问题-
好吧,我把那个角色拿出来是因为它似乎无关紧要。即使我删除了那个变量,我仍然不能以元素的ID为目标。看看我的更新。我不是说去掉它,我的意思是你有一个名为$elID的变量,在你的函数中,你试图得到elID,这显然是不存在的。是的,我认为真正的原因是我不知道如何针对我应用函数的元素,这就是$elID的意思。很明显,使用这个和$this并没有起到作用,所以我不确定我是否用了完全错误的方式。太好了。答案是有的。
$(document).ready(function(){
$.fn.showIcon = function() {
// this here is a jquery object
var $element = this;
$(window).scroll(function() {
// this here is the window object
var $window = $(this);
var windowHeight = $window.height() / 1.25;
var offset = $element.offset().top - windowHeight;
if ($window.scrollTop() >= offset) {
$element.find(".img-responsive").addClass('show');
}
});
}
$('#icon-1').showIcon();
$('#icon-2').showIcon();
$('#icon-3').showIcon();
});