任何人都可以告诉我我该怎么做,卷的回调就像这样
<a href='#' onClick="api_setVolume(players[0],0); return false;">Set volume (0%, mute)</a>
<a href='#' onClick="api_setVolume(players[0],0.5); return false;">Set volume (50%)</a>
<a href='#' onClick="api_setVolume(players[0],1); return false;">Set volume (100%)</a>
我需要在jquery中制作一个按钮,逐渐点击链接淡出声音。 谢谢。
答案 0 :(得分:0)
<script>
function fadeOut(callback) {
var volume = 1;
var fade = setInterval(function () {
api_setVolume(players[0], volume);
volume -= .1;
if (volume === 0) {
clearInterval(fade);
if (typeof callback === 'function') {
callback();
}
}
}, 1000);
}
function myCallback() {
// do Something
}
</script>
<a href='javascript:void(0)' onClick="fadeOut(myCallback);">Fade Out</a>
这是未经测试但应该有效。它会每1秒减少0.1的音量。您可以根据需要更改值。
答案 1 :(得分:0)
这是一个函数,它将要减小音量的播放器和以%/ s为单位的渐变速度(百分比/秒)作为参数。在函数中,我假设api_getVolume(player)
是您正在使用的API中的函数。
<script>
function fadeOut(player, fadeSpeed) {
var curVolume = api_getVolume(player),
reductionAmount = curVolume * (fadeSpeed / 1000);
var fadeInterval = setInterval(function () {
var newVolume = curVolume - reductionAmount;
if (newVolume < 0) {
return clearInterval(fadeInterval);
}
api_setVolume(player, newVolume);
curVolume = newVolume;
}, 100);
}
</script>
<!--Example button usage with fade speed of 50%/s (so the fade lasts 2 seconds)-->
<button onclick="fadeOut(player[0], 50);">Next</button>
这是我计算reductionAmount
的数学解释:
由于间隔每100毫秒触发一次,我们需要将淡入淡出速度从%/ s转换为十进制/ 100毫秒
所以:
%/s / 10 = %/100ms
然后
%/100ms / 100 = decimal/100ms
然后将此小数乘以当前音量,以获得每100 ms间隔减少的音量。