我有一个显示交互式 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/