java - 如何防止浏览器响应滚动事件

标签 java javascript applet

我有一个显示交互式 map 的 Java 小程序。通过使用滚轮,用户可以放大/缩小 map 。不幸的是,网络浏览器(Firefox)也会响应滚动事件,并且小程序最终会滚动到可见页面之外。

我的问题是,当鼠标位于小程序的边界内时,如何防止浏览器响应?

到目前为止,我已经尝试修改 HTML 以使小程序请求焦点

applet.focus()

我还尝试向我的小程序的 Java 代码添加一条语句,如下所示

requestFocus();

但都没有解决问题。

我可以在小程序中添加特定的放大/缩小控件,或者可能重组我的网页以减少网页滚动的需要,但如果滚轮能够完成缩放 map 的工作,那就太好了仅。

最佳答案

使用 JavaScript 并执行如下操作:

var applet = document.getElementById("appletID");
applet.mouseover = function(e) {
    document.body.onscroll = function(e) {
         e.preventDefault();
    }
}

applet.mouseout = function(e) {
    //replace with empty function
    document.body.onscroll = function(e) { }
}

这不是未经测试的代码。可能有几个错别字

编辑就像我说的拼写错误...我测试了这个,它确实有效:

window.onload = function() {

var applet = document.getElementById("header");
    applet.onmouseover = function(e) {
         window.onscroll = function(e) {
         //scroll where you want to be (the top)
           scroll(0,0) ;
         }
     }

    applet.onmouseout = function(e) {
          //replace with empty function
          window.onscroll = function(e) {}
    }

};

使用滚动方法不太干净,但 PreventDefault 似乎不起作用......

关于java - 如何防止浏览器响应滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119060/

相关文章:

java - 我怎样才能在其他方法中使用方法?

javascript - Jquery easyTicker 无法正常工作

php - 选择包含每个唯一字段值的行并按另一个有限制的字段排序

javascript - 将 Canvas 分成相同宽度和高度的空间

java - Repaint() 只工作了一半

java - Mac Java - 异常 : java. lang.UnsupportedClassVersionError

java - Java 中的流,无法理解这段代码

java - 如何检查计数器是否越界

java - 带线程的闪烁字符串

java - @在 REST Web 服务中使用 JSON,每次使用不同数量的 JSON 值