carousel.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. const nextStepBtn = document.querySelector(".skills-btn-next");
  3. const prevStepBtn = document.querySelector(".skills-btn-prev");
  4. const carousel = document.querySelector(".carousel");
  5. let carouselItems = document.querySelector(".carousel-item");
  6. setInterval(() => {
  7. printElements("right");
  8. }, 5000); // автоматическая прокрутка каждые 3 секунды
  9. function prePrintElements() {
  10. let carouselItemsW = document.querySelector(".carousel");
  11. if (window.innerWidth > 1600) {
  12. for (let i = 5; i <= carousel.children.length; i++) {
  13. carouselItemsW.children[i].style.display = "none";
  14. }
  15. } else if (window.innerWidth > 1300 && window.innerWidth <= 1600) {
  16. let i = 4; // сколько элементов должно остаться при данном разрешении
  17. for (i; i < carouselItemsW.children.length; i++) {
  18. carouselItemsW.children[i].style.display = "none";
  19. }
  20. } else if (window.innerWidth > 1000 && window.innerWidth <= 1300) {
  21. let i = 3; // сколько элементов должно остаться при данном разрешении
  22. for (i; i < carouselItemsW.children.length; i++) {
  23. carouselItemsW.children[i].style.display = "none";
  24. }
  25. } else if (window.innerWidth > 750 && window.innerWidth <= 1000) {
  26. let i = 2; // сколько элементов должно остаться при данном разрешении
  27. for (i; i < carouselItemsW.children.length; i++) {
  28. carouselItemsW.children[i].style.display = "none";
  29. }
  30. } else if (window.innerWidth < 750) {
  31. let i = 1; // сколько элементов должно остаться при данном разрешении
  32. for (i; i < carouselItemsW.children.length; i++) {
  33. carouselItemsW.children[i].style.display = "none";
  34. }
  35. }
  36. }
  37. function prePrintElementsReset() {
  38. let carouselItemsW = document.querySelector(".carousel");
  39. for (let i = 0; i < carouselItemsW.children.length; i++) {
  40. carouselItemsW.children[i].style.display = "flex";
  41. }
  42. }
  43. function printElements(btn) {
  44. prePrintElementsReset();
  45. let carouselItemsNow = document.querySelectorAll(".carousel-item");
  46. let p = document.createElement("p");
  47. p.classList.add("carousel-item");
  48. if (btn === "right") {
  49. p.innerHTML = `${carouselItemsNow[0].innerHTML}`;
  50. carouselItemsNow[0].remove();
  51. carousel.appendChild(p);
  52. } else if (btn === "left") {
  53. p.innerHTML = `${carouselItemsNow[carouselItemsNow.length - 1].innerHTML}`;
  54. carousel.replaceChildren();
  55. carousel.appendChild(p);
  56. for (let i = 0; i < carouselItemsNow.length; i++) {
  57. carousel.appendChild(carouselItemsNow[i]);
  58. }
  59. carouselItemsNow[carouselItemsNow.length - 1].remove();
  60. }
  61. prePrintElements();
  62. }
  63. nextStepBtn.addEventListener("click", () => {
  64. printElements("right");
  65. });
  66. prevStepBtn.addEventListener("click", () => {
  67. printElements("left");
  68. });
  69. // изменение при изменении ширины
  70. window.addEventListener("resize", () => {
  71. prePrintElementsReset();
  72. prePrintElements();
  73. });
  74. prePrintElements();