Запуск функции Javascript при загрузке, прокрутке и изменении размера страницы

#javascript

#javascript

Вопрос:

У меня есть вопрос о запуске функции Javascript, если страница загружена, при прокрутке и изменении размера.

Я создал функцию на Javascript и буду использовать ее одним простым вызовом, например

 <script type="text/javascript">
dataView('.result');
</script>
  

Чего я не хочу

 <script type="text/javascript">
window.addEventListener("scroll", function(){
    dataView('.result');
});

window.addEventListener("onload", function(){
    dataView('.result');
});

window.addEventListener("resize", function(){
    dataView('.result');
});
</script>
  

Какое хорошее решение для программирования функции с этими параметрами?

Комментарии:

1. Вам нужно будет вызвать эти команды. Единственное место для оптимизации, которое я вижу (помимо использования, например, jQuery), — это сделать '.result' параметр динамическим.

2. window.addEventListener("onload" <— почему там «включено»?

Ответ №1:

Вам придется связать все события отдельно. Вы можете сделать это массивом.

 function dView(){
  dataView('.result');
}

["load", "resize", "scroll"].forEach(function (evt) {
  window.addEventListener(evt, dView);
});
  

Ответ №2:

Создайте функцию внутри функции и вызовите эту функцию в обработчиках событий. Вызовите основную функцию на страницах, которые вы хотите.

Например:

 <script type="text/javascript">
function dataview(){
  window.addEventListener("load", function(){
      thedata();
  });
  
  window.addEventListener("scroll", function(){
      thedata();    
  });
  
  window.addEventListener("resize", function(){
      thedata();
  });
  
  function thedata(){
    alert('For example');
  }
}
</script>
  

Вызовите функцию на страницах

 <script type="text/javascript">
dataview();
</script>