【发布时间】:2012-11-12 20:43:28
【问题描述】:
我正在构建一些代码来尝试在图像在视图中时发生某些事情,然后在图像不在视图中时重置计数器,如果图像返回视图,则再次发生相同的事情。
我的代码可以识别图像何时进入视野并执行某些操作,但是当我添加代码以在图像不在视野时重置计数器时,整个事情就停止了工作。
html:
<div style="height: 2000px">
<img height="320px" width= "240px" id="pbr" src="http://i47.tinypic.com/33bztj8.jpg" alt="image 1">
<img height="320px" width= "240px" id="pbrglow" src="http://i48.tinypic.com/2ykduvl.jpg" alt="image 2">
<button id="button">click to reset</button>
</div>
css:
#pbr {
position: absolute;
top: 500px;
z-index: 0;
}
#pbrglow {
position: absolute;
display: none;
top: 500px;
z-index: 1;
}
#button {
position: absolute;
top: 850px;
z-index: 3;
}
javascript:
var y = $("#pbr").offset().top;
var eventsFired = 0;
$(window).scroll(function() {
var y = $("#pbr").offset().top;
var scrollY = $(window).scrollTop();
if (scrollY + 100 > y && eventsFired == 0) {
eventsFired++;
alert(eventsFired);
}
});
$("#button").on("click", function() {
var scrollYY = $(window).offsetTop();
if (eventsFired == 1) {
alert("happened");
eventsFired = 0;
}
}
这是带有代码的jsfiddle
一旦我删除了以 $("#button")... 开头的代码,代码就可以工作,但代码中的 this 就不行了。
附:这是我需要在 iOS 上工作的网站。
【问题讨论】:
-
我知道你说你的目标是iOS,但是你在其他浏览器上试过了吗?它在哪些方面起作用,在哪些方面不起作用?控制台中是否有 JS 错误?
-
我在 iOS 上运行它的原因是因为它被用作我在手机上向某人展示的演示。我不断收到一条错误消息:ReferenceError: resetfunction is not defined @fiddle.jshell.net/_display/:1。不知道为什么它说我没有定义函数。更新了 jsfiddle - jsfiddle.net/esegev1/ZwJpw/7
-
在您的示例中,您的 html 在单击按钮时调用了 resetfunction()。但是您永远不会在任何地方定义 resetfunction 。我对 iOS 的评论并不是说您不应该使用 iOS,而是您可以在非 iOS 浏览器上进行测试以帮助诊断问题。
-
这就是我有点不清楚的地方。在javascript中,我有代码函数resetfunction(),不是定义函数吗?对不起,我还是很新。我改变了 jsfiddle - jsfiddle.net/esegev1/ZwJpw/9
-
我完全看不到
function resetfunction()
标签: javascript ios scroll offset