javascript鼠标滚轮事件&;视频卷-防止页面滚动

javascript鼠标滚轮事件&;视频卷-防止页面滚动,javascript,scroll,volume,mousewheel,Javascript,Scroll,Volume,Mousewheel,我正在尝试使用鼠标滚轮控制视频音量, 当鼠标悬停在视频上时,我想完全禁用页面滚动, 它可以工作,但当视频音量达到最小和最大音量时会出现问题: 页面滚动开始…如果我的鼠标在视频上,我不希望页面滚动 实际上,我正在chrome中尝试: var popo = document.getElementById('popo'); var coco = document.getElementById('coco'); //popo.play(); //setTimeout(function(){ //

我正在尝试使用鼠标滚轮控制视频音量,
当鼠标悬停在视频上时,我想完全禁用页面滚动,
它可以工作,但当视频音量达到最小和最大音量时会出现问题:
页面滚动开始…如果我的鼠标在视频上,我不希望页面滚动
实际上,我正在chrome中尝试:

var popo = document.getElementById('popo');
var coco = document.getElementById('coco');
//popo.play();

//setTimeout(function(){
//    popo.pause();
//},3000);

var current = 0;
var doScroll = function (e) {
    // cross-browser wheel delta
    e = window.event || e;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));

    // Do something with `delta`
    current = current + delta;
    coco.innerHTML = current;

    if(delta== 1){popo.volume+=0.1;}
    if(delta== -1){popo.volume-=0.1;}

    e.preventDefault();
};

if (popo.addEventListener) {
   popo.addEventListener("mousewheel", doScroll, false);
    popo.addEventListener("DOMMouseScroll", doScroll, false);
} else {
    popo.attachEvent("onmousewheel", doScroll);
}

JSFIDLE DEMO:

您需要在if语句中添加一个条件,将其调高或调低,如下所示:

if(delta== 1 && popo.volume <= 0.9){popo.volume+=0.1;}
if(delta== -1 && popo.volume > 0.1){popo.volume-=0.1;}
if(delta==1&&popo.volume 0.1){popo.volume-=0.1;}

如果您检查控制台,当试图将音量设置为1.0以上时,视频会引发异常,并且不会达到e.preventDefault()

在设置卷的位置进行尝试/尝试可以解决此问题

try {
  if(delta== 1){popo.volume+=0.1;}
  if(delta== -1){popo.volume-=0.1;}
} catch(e) {}

你的意思是
popo.volume+0.1@CristiMihai很好,我已经更新了我的答案。它应该是