Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果身体有类在mp3声音淡入,否则淡出_Javascript_Jquery_Jquery Animate_Html5 Audio - Fatal编程技术网

Javascript 如果身体有类在mp3声音淡入,否则淡出

Javascript 如果身体有类在mp3声音淡入,否则淡出,javascript,jquery,jquery-animate,html5-audio,Javascript,Jquery,Jquery Animate,Html5 Audio,如果主体具有fp-VIGING-0类,我尝试将mp3音量衰减为1 这怎么会不起作用,而且音量也不会改变?我该如何解决这个问题 代码: var audio0 = document.getElementById('audio-0'); audio0.volume = 0; setInterval( function(){ if ($("body").hasClass("fp-viewing-0")) { audio0.animate({volume:

如果主体具有fp-VIGING-0类,我尝试将mp3音量衰减为1 这怎么会不起作用,而且音量也不会改变?我该如何解决这个问题

代码:

var audio0 = document.getElementById('audio-0');
audio0.volume = 0;

setInterval( function(){
          if ($("body").hasClass("fp-viewing-0")) {
             audio0.animate({volume: 1}, 1000);
            }

else {
   audio0.animate({volume: 0}, 1000);
            }

 }, 100);
HTML


亲切的问候

我已将jquery动画部分更改为手动淡入淡出。为此,我创建了一个淡入淡出时间和步骤计数来操纵淡入淡出效果

var audio0 = document.getElementById('audio-0');
audio0.volume = 0;

if ($("body").hasClass("fp-viewing-0")) {
     audio0.volume = 1; //max volume
     var fadeTime = 1500; //in milliseconds 
     var steps = 150; //increasing makes the fade smoother
     var stepTime = fadeTime/steps;
     var audioDecrement = audio0.volume/steps;

     var timer = setInterval(function(){
         audio0.volume -= audioDecrement; //fading out

         if (audio0.volume <= 0.03){ //if its already inaudible stop it
              audio0.volume = 0;
              clearInterval(timer); //clearing the timer so that it doesn't keep getting called
         }
     }, stepTime);
}

非常感谢。如果if条件使音频淡出,我将如何处理else语句?我可以在else条件中添加什么使音频淡出?@Neths我不确定我是否理解你的问题。如果
正文中有
fp-viewing-0
类,则最后一个块中的
if
会使音频淡入淡出状态,否则它不会做任何事情。它以前也有
volume=0
。因此,最终的结果是,如果类存在,它会淡出音频,否则你将听不到任何声音。如果删除上面的
audio0.volume=0
,则如果该类存在,它将淡出,否则它将保持音频播放。
$("#audio-0").prop("volume", 0);


setInterval( function(){
          if ($("body").hasClass("fp-viewing-0")) {
            $("#audio-0").animate({volume: 1}, 3000);
            }

else {
   $("#audio-0").animate({volume: 0}, 3000);
            }

 }, 100);
var audio0 = document.getElementById('audio-0');
audio0.volume = 0;

if ($("body").hasClass("fp-viewing-0")) {
     audio0.volume = 1; //max volume
     var fadeTime = 1500; //in milliseconds 
     var steps = 150; //increasing makes the fade smoother
     var stepTime = fadeTime/steps;
     var audioDecrement = audio0.volume/steps;

     var timer = setInterval(function(){
         audio0.volume -= audioDecrement; //fading out

         if (audio0.volume <= 0.03){ //if its already inaudible stop it
              audio0.volume = 0;
              clearInterval(timer); //clearing the timer so that it doesn't keep getting called
         }
     }, stepTime);
}
function fadeAudio(audio, fadeTime, steps){ 
    audio.volume = 1; //max 
    steps = steps || 150; //turning steps into an optional parameter that defaults to 150
    var stepTime = fadeTime/steps;
    var audioDecrement = audio.volume/steps;

    var timer = setInterval(function(){
        audio.volume -= audioDecrement;

        if (audio.volume <= 0.03){ //if its already inaudible stop it
             audio.volume = 0;
             clearInterval(timer);
        }
    }, stepTime);
}
var audio0 = document.getElementById('audio-0');
audio0.volume = 0;
if ($("body").hasClass("fp-viewing-0")) {
    fadeAudio(audio0, 1500);
}