javascript - 滚动的音频

标签 javascript jquery css audio skrollr

我正在用 skrollr 插件做一个网站,我几乎完成了图片和滚动本身,所以我现在尝试添加音频,但我似乎无法启动和停止音频当我想要的时候。这是我目前正在使用的脚本:

<script>

$(window).scroll(function() {
    var height = $(document).height() - $(window).height();
var scroll = $(window).scrollTop();  
      var audioElm = $('#soundTour').get(0);
    audioElm.play();
    audioElm.volume = 1 - $(window).scrollTop()/height;
    console.log(audioElm.volume);
});
</script>

这使我的音频在网站加载后立即开始,并在整个网站范围内淡出,因此当您滚动到底部时,它完全没有声音。我试过弄乱脚本中的“高度”变量,但无济于事。声音总是以极低的音量结束,但仍然在后台微弱地播放。有没有办法让它在某个滚动点关闭?例如,让音频在 $(window).scrollTop() = 500 处播放并在 $(window).scrollTop() = 3000 处停止?

最佳答案

var playing = false;
var audioElm = $('#soundTour').get(0);
$(window).scroll(function() {
  var pageScroll = $(window).scrollTop();
  if(!playing && pageScroll > 500 && pageScroll < 3000){
    audioElm.play();
    playing = true;
  }else if(pageScroll > 3000 || pageScroll < 500){
    audioElm.pause();
    playing = false;
  }
});

您需要添加一些条件。 (为了性能问题,我在外部定义了变量,因为 jQuery scroll 的性能非常差,在手机上更糟)。

笔:http://codepen.io/vandervals/pen/KpWzVJ

关于javascript - 滚动的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30598817/

相关文章:

javascript - 为什么这适用于 Firefox 而不适用于 Chrome 或 IE?

javascript - jQuery 根据下拉列表的值和文本值设置文本值(时间选择器)

javascript - 带滚动的 Jquery/Javascript 不透明度动画

javascript - jquery 缩短数字长度(将兆字节转换为千兆字节)

css - 填充问题 - bootstrap 3

javascript - 如何删除 html 表格中连续单元格的类

javascript - 如何使用 jquery 在 C# 中显示警报框?

javascript - 使用 React 创建的表单不会更新支持状态对象

javascript - 选择所有复选框并切换输入

jquery - 每 3 秒更改一次文本或使用左/右箭头转到下一个文本 - bootstrap 3