js html脚本只能在一个gallery上工作?

tv6aics1  于 2024-01-04  发布在  其他
关注(0)|答案(1)|浏览(289)

我做了一个可滚动的画廊与本教程:https://www.youtube.com/watch?v=gzXyRa7jwk4&list=PLQthIda1maZcb0ADbOVT4mRYQVHLqSxqL&index=3&t=1s&ab_channel=GreatStack它的作品在我的第一个画廊罚款,但是,如果我试图将脚本应用到其他两个画廊,他们不滚动在所有
下面是运行的代码

  1. let scrollContainer= document.querySelector (".gallery")
  2. let arrowLeft = document.getElementById("arrowLeft")
  3. let arrowRight = document.getElementById("arrowRight")
  4. scrollContainer.addEventListener ("wheel", (evt) => {
  5. evt.preventDefault ();
  6. scrollContainer.scrollLeft +=evt.deltaY;
  7. });
  8. arrowLeft.addEventListener ("click", () => {
  9. scrollContainer.style.scrollBehavior = "smooth";
  10. scrollContainer.scrollLeft -= 900;
  11. });
  12. arrowRight.addEventListener ("click", () => {
  13. scrollContainer.style.scrollBehavior = "smooth";
  14. scrollContainer.scrollLeft += 900;
  15. });

个字符
如前所述,它的工作,但是,如果我复制画廊和脚本和给予他们不同的类和ID(如.gallery2而不是.gallery)不知何故,它不工作。

  1. let scrollContainer= document.querySelector (".gallery2")
  2. let arrowLeft2 = document.getElementById("arrowLeft2")
  3. let arrowRight2 = document.getElementById("arrowRight2")
  4. scrollContainer.addEventListener ("wheel", (evt) => {
  5. evt.preventDefault ();
  6. scrollContainer.scrollLeft +=evt.deltaY;
  7. });
  8. arrowLeft2.addEventListener ("click", () => {
  9. scrollContainer.style.scrollBehavior = "smooth";
  10. scrollContainer.scrollLeft -= 900;
  11. });
  12. arrowRight2.addEventListener ("click", () => {
  13. scrollContainer.style.scrollBehavior = "smooth";
  14. scrollContainer.scrollLeft += 900;
  15. });
  1. <section id="Cocktails">
  2. <h2>
  3. Cocktails
  4. </h2>
  5. <div class="gallery-wrap2">
  6. <img id="arrowLeft2" src="images/arrow_left.jpg">
  7. <div class="gallery2">
  8. <div>
  9. <span >
  10. <a href="https://www.hdm-stuttgart.de/">
  11. <img src="images/audiovisualmedia.jpg">
  12. <p> Placeholder</p>
  13. </a>
  14. </span>
  15. <span>
  16. <img src="images/hdm.jpg">
  17. </span>
  18. <span>
  19. <img src="images/hdm_building.jpg">
  20. </span>
  21. <span>
  22. <img src="images/mobilemedia.jpg">
  23. </div>
  24. <div>
  25. <span>
  26. <img src="images/audiovisualmedia.jpg">
  27. </span>
  28. <span>
  29. <img src="images/hdm.jpg">
  30. </span>
  31. <span>
  32. <img src="images/hdm_building.jpg">
  33. </span>
  34. <span>
  35. <img src="images/mobilemedia.jpg">
  36. </div>
  37. </div>
  38. <img id="arrowRight2"src="images/arrow_right.png">
  39. </div>
  40. </section>

的字符串
你知道我该怎么补救吗?

o75abkj4

o75abkj41#

所以我找到了一个非常简单的解决方案。我需要在js中为每个画廊重命名scrollContainer变量。所以对于.gallery2,我创造性地将其重命名为scrollContainer2

  1. <script>
  2. let scrollContainer2= document.querySelector (".gallery2")
  3. let arrowLeft2 = document.getElementById("arrowLeft2")
  4. let arrowRight2 = document.getElementById("arrowRight2")
  5. scrollContainer2.addEventListener ("wheel", (evt) => {
  6. evt.preventDefault ();
  7. scrollContainer2.scrollLeft +=evt.deltaY;
  8. });
  9. arrowLeft2.addEventListener ("click", () => {
  10. scrollContainer2.style.scrollBehavior = "smooth";
  11. scrollContainer2.scrollLeft -= 900;
  12. });
  13. arrowRight2.addEventListener ("click", () => {
  14. scrollContainer2.style.scrollBehavior = "smooth";
  15. scrollContainer2.scrollLeft += 900;
  16. });
  17. </script>

字符串
所有的画廊现在工作,并可滚动

展开查看全部

相关问题