Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用jQuery的访问者可以看到div时引发事件?_Jquery_Html_Css - Fatal编程技术网

当使用jQuery的访问者可以看到div时引发事件?

当使用jQuery的访问者可以看到div时引发事件?,jquery,html,css,Jquery,Html,Css,功能: 当用户看到某个div(向下滚动到该div)时,我想更改某个项目的类 我现在是怎么做的:我正在使用这个很好的脚本(),它可以在用户看到div时触发jquery事件。然而,它只发射一次。因此,如果向下滚动页面,jquery将得到良好的执行。但如果我上下滚动,它不会发出火焰。这是我的jquery: $('#myDiv').appear(function() { $("#aDiv").addClass("active"); }); 我想做什么:让脚本在每次“myDiv”出现时执

功能: 当用户看到某个div(向下滚动到该div)时,我想更改某个项目的类

我现在是怎么做的:我正在使用这个很好的脚本(),它可以在用户看到div时触发jquery事件。然而,它只发射一次。因此,如果向下滚动页面,jquery将得到良好的执行。但如果我上下滚动,它不会发出火焰。这是我的jquery:

$('#myDiv').appear(function() {
        $("#aDiv").addClass("active");
});
我想做什么:让脚本在每次“myDiv”出现时执行,而不仅仅是第一次


有人知道我该怎么做吗?

我使用了一个类似的插件,但它使用了bind方法并使用了一个事件->

示例用法:

$('div').bind('inview', function (event, visible) {
  if (visible == true) {
    // element is now visible in the viewport
  } else {
    // element has gone out of viewport
  }
});

通过查看的源代码,可以传递参数
one
,只触发事件一次(
one:true
),或每次事件出现(
one:false

$('#myDiv')。出现(函数(){
$(“#aDiv”).addClass(“活动”);
}, {
一:错
});

要判断div是否可见,您可以:

$(window).scroll(function(event) {
    console.log($(".target").offset().top < $(window).scrollTop() + $(window).outerHeight());
});
$(窗口)。滚动(函数(事件){
console.log($(“.target”).offset().top<$(window.scrollTop()+$(window.outerHeight());
});
所以,我认为你不需要任何插件

从下面的表达来判断:

if($(".target").offset().top < $(window).scrollTop() + $(window).outerHeight()) {
    // something when the .target div visible
} else {
    // something when the .target div invisible
}
if($(“.target”).offset().top<$(窗口).scrollTop()+$(窗口).outerHeight()){
//当.target div可见时
}否则{
//当.target div不可见时
}
可能对您有用

无论如何,您可以不用插件,而是用一个简单的表达式:

var elem_top=$(“某些元素”).offset().top;
var elem_height=$(“某些元素”).height();
var wind_height=$(窗口).height();
var scrollTop=$(窗口);
如果(元素顶部>(风高度+滚动顶部)&&
!(元素顶部+元素高度)
当使用脚本时,控制台中会出现错误,谁会这样说:a.style是未定义的怪异?@Paparappa,根据jQuery 1.7中的修复:)但是,如果我进入appease.js文件并将其更改为false,则此代码不起作用。我的问题就解决了。所以你的回答不仅仅激励我去解决它。