如何重构此Javascript代码,使其更加模块化和简洁?

苏格拉底猿
var vid1 = document.getElementById("v1");
var vid2 = document.getElementById("v2");
var vidArr = [vid1,vid2];

var tempListener1 = function checkViewA(){
    if(elementInView(vid1)){
        playVideo(vid1);
        window.removeEventListener('scroll', tempListener1); // so the video only plays once
    }
}

var tempListener2 = function checkViewB(){
    if(elementInView(vid2)){
        playVideo(vid2);
        window.removeEventListener('scroll', tempListener2);
    }
}

// scroll event listeners
window.addEventListener('scroll', tempListener1);
window.addEventListener('scroll', tempListener2); 

// this plays the video
async function playVideo(v){ 
    v.play();
}

我希望能够继续添加观看时播放的视频,而不必继续添加变量,事件监听器。在javascript中,您无法删除具有带有参数的函数的侦听器,这就是为什么我将它们放入变量中。任何见解都将受到欢迎。

一定的表现

首先得到集中所有视频元素的集合,然后添加一个单一的滚动监听器。当侦听器运行时,遍历Set。只要找到观看的视频,就播放并将其从Set中删除:

const videos = new Set(document.querySelectorAll('video'));
window.addEventListener('scroll', () => {
  for (const video of videos) {
    if (elementInView(video)) {
      video.play();
      videos.delete(video);
    }
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何重构该代码以使其更简洁?

来自分类Dev

如何使用State monad重构代码,以通过添加更多功能来增加模块化?

来自分类Dev

将此代码重构为模块化的内容

来自分类Dev

如何重构此Ruby清理散列方法以使其更加惯用?

来自分类Dev

如何改进此代码,使其更简洁高效?

来自分类Dev

如何模块化角度代码?

来自分类Dev

如何使此JavaScript代码更简洁?

来自分类Dev

模块化python代码

来自分类Dev

如何使用DOM Create Element使现有代码更加动态和简洁?

来自分类Dev

Android | 我将如何编写此代码以使其更加面向对象?

来自分类Dev

在javascript中简化/模块化我的代码

来自分类Dev

在javascript中简化/模块化我的代码

来自分类Dev

我想使用 javascript 模块化代码

来自分类Dev

模块化我的Express / Mongoose API代码,使其更易于使用

来自分类Dev

如何在Node JS中模块化代码

来自分类Dev

Javascript模块化算术

来自分类Dev

JavaScript模块化和依赖注入之间的区别

来自分类Dev

JavaScript模块化和依赖注入之间的区别

来自分类Dev

AngularJS-如何模块化指令和模板组合?

来自分类Dev

如何管理Angular js依赖关系和模块化?

来自分类Dev

模块化 JS:如何传递变量和事件

来自分类Dev

如何使Javascript中的提取API模块化

来自分类Dev

如何重构此Java代码

来自分类Dev

Flexdashboard-模块化rCharts代码

来自分类Dev

如何将multiple if语句重构为更简洁易读的javascript代码?

来自分类Dev

使我的程序更具模块化使其速度变慢

来自分类Dev

澄清学习节点练习 6 的说明 - 使其模块化

来自分类Dev

如何使此函数更具模块化,并用于结构的多个成员?

来自分类Dev

如何使此函数更具模块化,并用于结构的多个成员?

Related 相关文章

  1. 1

    如何重构该代码以使其更简洁?

  2. 2

    如何使用State monad重构代码,以通过添加更多功能来增加模块化?

  3. 3

    将此代码重构为模块化的内容

  4. 4

    如何重构此Ruby清理散列方法以使其更加惯用?

  5. 5

    如何改进此代码,使其更简洁高效?

  6. 6

    如何模块化角度代码?

  7. 7

    如何使此JavaScript代码更简洁?

  8. 8

    模块化python代码

  9. 9

    如何使用DOM Create Element使现有代码更加动态和简洁?

  10. 10

    Android | 我将如何编写此代码以使其更加面向对象?

  11. 11

    在javascript中简化/模块化我的代码

  12. 12

    在javascript中简化/模块化我的代码

  13. 13

    我想使用 javascript 模块化代码

  14. 14

    模块化我的Express / Mongoose API代码,使其更易于使用

  15. 15

    如何在Node JS中模块化代码

  16. 16

    Javascript模块化算术

  17. 17

    JavaScript模块化和依赖注入之间的区别

  18. 18

    JavaScript模块化和依赖注入之间的区别

  19. 19

    AngularJS-如何模块化指令和模板组合?

  20. 20

    如何管理Angular js依赖关系和模块化?

  21. 21

    模块化 JS:如何传递变量和事件

  22. 22

    如何使Javascript中的提取API模块化

  23. 23

    如何重构此Java代码

  24. 24

    Flexdashboard-模块化rCharts代码

  25. 25

    如何将multiple if语句重构为更简洁易读的javascript代码?

  26. 26

    使我的程序更具模块化使其速度变慢

  27. 27

    澄清学习节点练习 6 的说明 - 使其模块化

  28. 28

    如何使此函数更具模块化,并用于结构的多个成员?

  29. 29

    如何使此函数更具模块化,并用于结构的多个成员?

热门标签

归档