我在 swf 文件中使用滚动..有没有办法在所有浏览器上禁用滚动鼠标滚轮..我让它适用于 IE 和 FF,但 Webkit 不起作用:
$(document).ready(function() {
$("#ebook").hover(
function () {
document.onmousewheel = function(){
return false
};
console.log('On');
},
function () {
console.log('Out');
document.onmousewheel = function() {
return true;
}
}
);
});
最佳答案
在网络和 JQuery 的一些脚本的帮助下,我针对该问题组装了以下 Javascript 解决方案,并且它在所有浏览器上都能正常工作。
基于:http://adomas.org/javascript-mouse-wheel/
只需在鼠标进入容器 div 时禁用并重新启用鼠标 onMouseLeave
即可。
jQuery(function(){
$("#myFlashContainer").mouseenter(
function () {
if (window.addEventListener)
{
window.removeEventListener('DOMMouseScroll', wheelOn, false);
window.addEventListener('DOMMouseScroll', wheelOff, false);
}
/** IE/Opera. **/
window.onmousewheel = document.onmousewheel = wheelOff;
}
);
$("#myFlashContainer").mouseleave(
function () {
if (window.addEventListener)
{
window.removeEventListener('DOMMouseScroll', wheelOff, false);
window.addEventListener('DOMMouseScroll', wheelOn, false);
}
/** IE/Opera. **/
window.onmousewheel = document.onmousewheel = wheelOn;
}
);
function wheelOff(event)
{
var delta = 0;
if (!event) /* For IE. */
event = window.event;
if (event.wheelDelta) { /* IE/Opera. */
delta = event.wheelDelta/120;
} else if (event.detail) { /** Mozilla case. */
/** In Mozilla, sign of delta is different than in IE.
* Also, delta is multiple of 3.
*/
// delta = -event.detail/3;
}
if (event.preventDefault)
event.preventDefault();
event.returnValue = false;
}
function wheelOn(event)
{
var delta = 0;
if (!event) /* For IE. */
event = window.event;
if (event.wheelDelta) { /* IE/Opera. */
delta = event.wheelDelta/120;
} else if (event.detail) { /** Mozilla case. */
// delta = -event.detail/3;
}
if (event.preventDefault)
{
//event.preventDefault();
event.returnValue = true;
}
return true;
}
});
关于javascript - 禁用 swf 文件上的鼠标滚轮滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445094/