Я пытаюсь создать фильтр изображений, который кажется законченным, но единственное, что происходит, когда я загружаю страницу, она пуста, пока я не нажму на список фильтров

#javascript

Вопрос:

Вот код, который Я ПОЛУЧИЛ ОТ W3SCHOOLS. Все это работает, за исключением первой загрузки страницы, которая выдает мне пустую страницу, но затем, когда я нажимаю на одну из тем, это работает.

 function filterSelection(c) {  var x, i;  x = document.getElementsByClassName("filterDiv");  if (c == "all") c = "";  for (i = 0; i lt; x.length; i  ) {  w3RemoveClass(x[i], "show");  if (x[i].className.indexOf(c) gt; -1) w3AddClass(x[i], "show");  } }  function w3AddClass(element, name) {  var i, arr1, arr2;  arr1 = element.className.split(" ");  arr2 = name.split(" ");  for (i = 0; i lt; arr2.length; i  ) {  if (arr1.indexOf(arr2[i]) == -1) {element.className  = " "   arr2[i];}  } }  function w3RemoveClass(element, name) {  var i, arr1, arr2;  arr1 = element.className.split(" ");  arr2 = name.split(" ");  for (i = 0; i lt; arr2.length; i  ) {  while (arr1.indexOf(arr2[i]) gt; -1) {  arr1.splice(arr1.indexOf(arr2[i]), 1);   }  }  element.className = arr1.join(" "); }  // Add active class to the current button (highlight it) var btnContainer = document.getElementById("myBtnContainer"); var btns = btnContainer.getElementsByClassName("btn"); for (var i = 0; i lt; btns.length; i  ) {  btns[i].addEventListener("click", function(){  var current = document.getElementsByClassName("active");  current[0].className = current[0].className.replace(" active", "");  this.className  = " active";  }); }```   

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

1. Ваш код не завершен. Добавьте свой html-код.

2. lt;идентификатор div=»myBtnContainer»gt; lt;идентификатор div=»myBtnContainer»gt;lt;класс кнопки=»btn активный» onclick=»Выбор фильтра («все»)»gt; Показать всеlt;класс кнопки=»btn активный»onclick=»Выбор фильтра («все»)»gt;lt;/кнопкаgt; lt;/кнопкаgt;lt;класс кнопки=»btn» onclick=»Выбор фильтра («аним»)»gt; Анимацииlt;класс кнопки=»btn» onclick=»Выбор фильтра («все»)»gt;»аним»)»gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;класс кнопки=» btn»onclick=» Выбор фильтра («опечатка»)»gt;Типографияlt;класс кнопки=» btn»onclick=» Выбор фильтра («опечатка»)»gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;класс кнопки=»btn»onclick=» Выбор фильтра («редактирование»)»gt;Редакционный дизайнlt;класс кнопки=» btn»onclick=»Выбор фильтра («редактирование»)»gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;класс кнопки=» btn»onclick=» Выбор фильтра (‘img’)»gt;Изображенияlt;класс кнопки=»btn» onclick= » Выбор фильтра (‘img’) «gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;класс кнопки= » btn «onclick=» Выбор фильтра (‘модный дизайн’) «gt;Дизайн одеждыlt;класс кнопки= » btn «onclick=» Выбор фильтра (‘модный дизайн’) «gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;класс кнопки= » btn «onclick=» Выбор фильтра (‘фото’) «gt;Фотографияlt;класс кнопок= » btn «onclick=» Выбор фильтра (‘фото’) » gt;lt;/кнопкаgt;lt;/кнопкаgt;lt;/div gt;

Ответ №1:

Вы не поделились html-частью, содержащейся в вашем коде, но в любом случае ее можно угадать. Вы можете добавить класс показа к любому из них, который хотите показать при первой загрузке. Например lt;div class="filterDiv typo show"gt;...lt;/divgt; , если вы хотите показать раздел опечатки при первой загрузке.

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

1. Привет, спасибо! Это сработало, мне просто нужно добавить его ко всем моим дивам, и они появятся, а затем их можно будет отфильтровать, большое спасибо!!!