在DIV中阻止鼠标滚动

时间:2014-04-30 13:38:19

标签: javascript php scroll mouseevent

如何使用id="slider-'.$question_id.'"

阻止div中的鼠标滚动

所以基本上如果你把鼠标放在那个div上,点击它就不能用鼠标滚动滚动。

<div id="slider-'.$question_id.'"> CONTENT </div>

我只是在寻找 JavaScript

的解决方案

我的代码如下,但这会阻止整个页面:

<script type='text/javascript'>
document.onmousewheel = function(){ stopWheel(); } /* IE7, IE8 */
if(document.addEventListener){ /* Chrome, Safari, Firefox */
    document.addEventListener('DOMMouseScroll', stopWheel, false);
}

function stopWheel(e){
    if(!e){ e = window.event; } /* IE7, IE8, Chrome, Safari */
    if(e.preventDefault) { e.preventDefault(); } /* Chrome, Safari, Firefox */
    e.returnValue = false; /* IE7, IE8 */
}
</script>

2 个答案:

答案 0 :(得分:1)

您可以使用event.target来识别滚动元素是否是您想要影响的元素:

function stopWheel(e){
    if (e.target.id === "slider-'.$question_id.'") {
        if(!e){ e = window.event; } /* IE7, IE8, Chrome, Safari */
        if(e.preventDefault) { e.preventDefault(); } /* Chrome, Safari, Firefox */
        e.returnValue = false; /* IE7, IE8 */
    }
}  

另外,您需要在第一次通话中提供活动:

document.onmousewheel = function (e) {
    stopWheel(e);
} /* IE7, IE8 */

以下是一个例子:http://jsfiddle.net/Da3L3/

答案 1 :(得分:0)

您需要定位div,以便尝试以下内容:

document.getElementByID("slider-'.$question_id.'").onmousewheel = function(){ stopWheel(); } /* IE7, IE8 */
if(document.getElementByID("slider-'.$question_id.'").addEventListener){ /* Chrome, Safari, Firefox */
    document.getElementByID("slider-'.$question_id.'").addEventListener('DOMMouseScroll', stopWheel, false);
}

希望我帮助