js에서 이미지를 간단한 슬라이더로 만드는 방법

약간 뒤틀리게 하다

나는 html, js 및 css 만 알고 있습니다. 슬라이드 쇼 에서처럼 몇 초마다 이미지를 변경하려고합니다.

    <script type="text/javascript">
        var temp=1;
        function slider(){
            document.getElementById("pic1").style.display = 'none';
            document.getElementById("pic2").style.display = 'none';
            document.getElementById("pic3").style.display = 'none';
            if(temp==1){
                document.getElementById("pic1").style.display = 'block';
            }
            else if(temp==2){
                document.getElementById("pic2").style.display = 'block';
            }
            else if (temp==3){
                document.getElementById("pic3").style.display = 'block';
                temp=1;
            }
            temp++;
            setTimeout(slider(),25000);
        }
    </script>

머리는 위에 있고 몸은 아래에 있습니다.

    <div id="rightside" onload="slider()">
        <a id="pic1"><img src="photos/hamilton/candyshop.jpg" style="display:block"></a>
        <a id="pic2"><img src="photos/hamilton/hamiltonboat.jpg" style="display:none"></a>
        <a id="pic3"><img src="photos/hamilton/waterduel.jpg" style="display:none"></a>
    </div>
로리 오케 인

작동하려면 모두 수정해야하는 여러 오류가 있습니다.

  • 에서 함수 의 반환 값이 아니라 함수 자체를 setTimeout(slider(), 25000)전달해야 합니다. 그런 다음 모든 것을 시작하기 위해 정의한 후 한 번 호출해야합니다 . 사용하여 HTML 대신 JavaScript에서이를 수행하여 HTML을 자체 포함 할 수 있습니다.sliderslider()slider()document.addEventListeneronload
  • 당신은 설정 imgdisplay:noneHTML에서, 그리고 당신은 ID와 요소를 설정 pic1display: block. 그러나이 요소는 아니다 img는이다, a. 따라서를 display: block <a>포함하는 것으로 끝나 display: none <img>므로 결국 아무것도 표시되지 않습니다.
  • 을 설정 temp = 1하면 바로 실행 한 직후에을 실행 temp++하므로 사진 # 1은 다시는 보이지 않습니다. temp = 0그 줄에서이 문제를 고칠 수 있지만 temp"0, 1, 2" %를 통해 루프를 만들고 너무 높으면 숫자를 루프 하는 모듈로 연산자 사용하는 것이 좋습니다.

또한 alt각 이미지를 설명하는 속성을 추가 하여 이미지로드없이 데모가 작동하도록했습니다. 어떤 이유로 든 이미지를 볼 수없는 경우 사용자에게도 도움이됩니다.

작동 버전 :

document.addEventListener("DOMContentLoaded", function(event) {
  var temp = 0;

  function slider() {
    document.getElementById("pic1").style.display = 'none';
    document.getElementById("pic2").style.display = 'none';
    document.getElementById("pic3").style.display = 'none';
    if (temp == 0) {
      document.getElementById("pic1").style.display = 'block';
    } else if (temp == 1) {
      document.getElementById("pic2").style.display = 'block';
    } else if (temp == 2) {
      document.getElementById("pic3").style.display = 'block';
    }
    temp = (temp + 1) % 3;
    setTimeout(slider, 1500); // decreased delay for demo purposes
  }

  slider();
});
<div id="rightside">
  <a id="pic1" style="display:block">
    <img alt="candy shop" src="photos/hamilton/candyshop.jpg">
  </a>
  <a id="pic2" style="display:none">
    <img alt="Hamilton boat" src="photos/hamilton/hamiltonboat.jpg">
  </a>
  <a id="pic3" style="display:none">
    <img alt="water duel" src="photos/hamilton/waterduel.jpg">
  </a>
</div>

위와 같이 코드를 작동시킨 후 루프와 함수를 사용하여 반복을 줄일 수도 있습니다. 다음 버전에서는 그림을 더 추가하면 코드의 여러 부분을 복사하여 붙여 넣는 대신 한 줄의 코드 만 변경하면됩니다. 코드를 각각 간단한 함수로 분할하면 코드를 더 쉽게 이해하고 오류를 확인하는 추가 이점이 있습니다.

document.addEventListener("DOMContentLoaded", function(event) {
  var currentIndex = 0;
  var numPictures = 3;

  function slideshow() {
    hideAllPictures();
    showPicture(currentIndex);

    currentIndex = (currentIndex + 1) % numPictures;
    setTimeout(slideshow, 1500);
  }

  function hideAllPictures() {
    for (var i = 0; i < numPictures; i++) {
      hidePicture(i);
    }
  }

  function hidePicture(index) {
    getPictureElement(index).style.display = 'none';
  }
  function showPicture(index) {
    getPictureElement(index).style.display = 'block';
  }

  function getPictureElement(index) {
    var id = "pic" + (index + 1);
    return document.getElementById(id);
  }

  slideshow();
});
<div id="rightside">
  <a id="pic1" style="display:block">
    <img alt="candy shop" src="photos/hamilton/candyshop.jpg">
  </a>
  <a id="pic2" style="display:none">
    <img alt="Hamilton boat" src="photos/hamilton/hamiltonboat.jpg">
  </a>
  <a id="pic3" style="display:none">
    <img alt="water duel" src="photos/hamilton/waterduel.jpg">
  </a>
</div>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

팝업 효과없이 간단한 이미지 슬라이더로 shadowBox를 사용하는 방법?

분류에서Dev

이미지를 간단한 자동 재생 슬라이드 쇼에 맞추는 방법은 무엇입니까?

분류에서Dev

슬라이더에 이미지를로드하는 가장 좋은 방법

분류에서Dev

node.js 및 express로 이미지를 업로드하는 간단한 방법?

분류에서Dev

node.js 및 express로 이미지를 업로드하는 간단한 방법?

분류에서Dev

새 창에서 슬라이더로 이미지를 여는 방법

분류에서Dev

Python에서 두 이미지를 비교하는 간단한 방법

분류에서Dev

OpenGL (OpenTK)에서 간단한 이미지를 표시하는 가장 간단한 방법은 무엇입니까?

분류에서Dev

JOOMLA : 사용자 컴포넌트를위한 간단한 이미지 업 로더를 만드는 방법

분류에서Dev

matplotlib에서 두 개의 슬라이더를 만드는 방법

분류에서Dev

Meteor에서 간단한 데이터베이스 쿼리를 만드는 방법

분류에서Dev

동적 콘텐츠로 이미지 슬라이더를 만드는 방법

분류에서Dev

Android에서 헤더에 이미지 슬라이더를 설정하는 방법

분류에서Dev

Android 프로젝트에 간단한 슬라이드 쇼를 만드는 가장 좋은 방법은 무엇입니까?

분류에서Dev

mysql 데이터베이스의 이미지에서 이미지 슬라이드 쇼를 만드는 방법

분류에서Dev

Android에서 슬라이더 이미지에 글라이드 라이브러리를 사용하는 방법

분류에서Dev

오버레이로 Gridview에서 선택한 이미지를 만드는 방법

분류에서Dev

오버레이로 Gridview에서 선택한 이미지를 만드는 방법

분류에서Dev

픽셀 단위로 이미지를 그리는 더 간단한 방법

분류에서Dev

Meteor에서 클라이언트에서 서버로 간단한 http 요청을 만드는 방법

분류에서Dev

C ++ 코드를 사용하여 Ubuntu에서 이미지를 표시하는 간단한 방법

분류에서Dev

고정 js 슬라이더를 만드는 방법

분류에서Dev

ckeditor 이미지 업로드를 간단한 드래그 앤 드롭으로 만드는 방법

분류에서Dev

지도를 만드는 간단한 방법이 있습니까?

분류에서Dev

제어 센터에서 기간 슬라이더를 만드는 방법은 무엇입니까? 빠른

분류에서Dev

안드로이드 이미지 슬라이더에서 구현하는 방법은 무엇입니까?

분류에서Dev

초보자를 위해 iOS에서 단계별로 슬라이드 아웃 메뉴를 만드는 방법

분류에서Dev

캐 러셀 슬라이더에 공간을 추가하고 3 개의 이미지 만 표시하는 방법

분류에서Dev

Android / DCIM /에서 스톡 카메라 이미지 위치를 얻는 간단한 방법?

Related 관련 기사

  1. 1

    팝업 효과없이 간단한 이미지 슬라이더로 shadowBox를 사용하는 방법?

  2. 2

    이미지를 간단한 자동 재생 슬라이드 쇼에 맞추는 방법은 무엇입니까?

  3. 3

    슬라이더에 이미지를로드하는 가장 좋은 방법

  4. 4

    node.js 및 express로 이미지를 업로드하는 간단한 방법?

  5. 5

    node.js 및 express로 이미지를 업로드하는 간단한 방법?

  6. 6

    새 창에서 슬라이더로 이미지를 여는 방법

  7. 7

    Python에서 두 이미지를 비교하는 간단한 방법

  8. 8

    OpenGL (OpenTK)에서 간단한 이미지를 표시하는 가장 간단한 방법은 무엇입니까?

  9. 9

    JOOMLA : 사용자 컴포넌트를위한 간단한 이미지 업 로더를 만드는 방법

  10. 10

    matplotlib에서 두 개의 슬라이더를 만드는 방법

  11. 11

    Meteor에서 간단한 데이터베이스 쿼리를 만드는 방법

  12. 12

    동적 콘텐츠로 이미지 슬라이더를 만드는 방법

  13. 13

    Android에서 헤더에 이미지 슬라이더를 설정하는 방법

  14. 14

    Android 프로젝트에 간단한 슬라이드 쇼를 만드는 가장 좋은 방법은 무엇입니까?

  15. 15

    mysql 데이터베이스의 이미지에서 이미지 슬라이드 쇼를 만드는 방법

  16. 16

    Android에서 슬라이더 이미지에 글라이드 라이브러리를 사용하는 방법

  17. 17

    오버레이로 Gridview에서 선택한 이미지를 만드는 방법

  18. 18

    오버레이로 Gridview에서 선택한 이미지를 만드는 방법

  19. 19

    픽셀 단위로 이미지를 그리는 더 간단한 방법

  20. 20

    Meteor에서 클라이언트에서 서버로 간단한 http 요청을 만드는 방법

  21. 21

    C ++ 코드를 사용하여 Ubuntu에서 이미지를 표시하는 간단한 방법

  22. 22

    고정 js 슬라이더를 만드는 방법

  23. 23

    ckeditor 이미지 업로드를 간단한 드래그 앤 드롭으로 만드는 방법

  24. 24

    지도를 만드는 간단한 방법이 있습니까?

  25. 25

    제어 센터에서 기간 슬라이더를 만드는 방법은 무엇입니까? 빠른

  26. 26

    안드로이드 이미지 슬라이더에서 구현하는 방법은 무엇입니까?

  27. 27

    초보자를 위해 iOS에서 단계별로 슬라이드 아웃 메뉴를 만드는 방법

  28. 28

    캐 러셀 슬라이더에 공간을 추가하고 3 개의 이미지 만 표시하는 방법

  29. 29

    Android / DCIM /에서 스톡 카메라 이미지 위치를 얻는 간단한 방법?

뜨겁다태그

보관