我正在通过AJAX加载元素.只有向下滚动页面时,其中一些才可见.
有什么方法我可以知道一个元素现在是否在页面的可见部分?
我正在构建一个将包含在页面中的工具栏.它将被包括在内的div将默认为display:none.有没有办法我可以在我的工具栏上放置一个事件监听器,以便在它变得可见时进行监听,以便初始化?或者我是否必须从包含页面传递变量?
谢谢
基本上,我想知道是否有一种方法可以在元素隐藏或可见时自动运行函数,而不是在用户单击时自动运行,而是在另一个脚本中自动运行.
我不希望这只运行一次,因为元素(如滑块)不断从可见变为隐藏.
这是jQuery可以用bind做的吗?比如将元素的可见性绑定到一个函数(我不知道如何写这个)
如果您需要我详细说明我正在尝试做什么,请告诉我.谢谢
伪代码:
$('#element').bind('display:none', function);
function(){
//do something when element is display:none
}
$('#element').bind('display:block', function2);
function2(){
//do opposite of function
}
Run Code Online (Sandbox Code Playgroud) 有没有人知道一个onHide()事件或jQuery中类似的东西?
我试过了:
$(this).bind('hide', function(){
console.log('asdasda')
})
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用.
编辑:
只是为了澄清,它是使用CSS隐藏的display:none.
我知道回调函数,但因为我没有隐藏它(CSS是)我不能使用它.对于它的价值,我需要检查下拉列表何时可见.它由以下CSS显示:
ul li:hover ul {
display: block;
}
Run Code Online (Sandbox Code Playgroud) 我想在元素出现在屏幕上时显示淡入淡出效果.这个元素之前有很多内容,所以如果我在document.ready上触发效果,在某些分辨率下,游客都看不到它.
当向下滚动元素变得可见时,是否可以触发事件?我几乎肯定我以前见过这种效果,但不知道如何实现它.
谢谢!
可能重复:
当div可见时触发操作的jQuery事件
当由ajax加载的元素变为可见时,如何运行我的代码("display"从"none"切换到"block")?好吧,我需要一些事件
$('#element').live('show', function(){
// CODE
});
Run Code Online (Sandbox Code Playgroud)
或者观看删除/添加一些类到元素的事件
我试图在一些第三方代码出现模式对话框后获得一段JavaScript运行.我看到了一个非常巧妙的劫持jQuery show函数的想法,但不幸的是它没有用.我猜这个想法曾经在2009年用于旧版本的jQuery,但现在还没有在最新版本上使用.这是一个jsFiddle的实现和示例:
http://jsfiddle.net/mkmurray/drv5w/2/
正如您通过运行示例所看到的,它将警告'beforeShow'事件,但不会警告'afterShow事件',并且通过一些调试我可以看到它没有完全调用'newCallback'函数.
提前感谢您提供的任何帮助.