затухание / затухание остановки массива - PullRequest
0 голосов
/ 01 октября 2019

как я могу остановить этот цикл?

<body>
        <div class="container">

            <div id="claim"></div>
        </div>
        <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
        <script>
          var classes = [
                '<h1 >Software</h1>',
                '<h1 >project </h1>',
                '<h1 >Engineering</h1>',  
                '<h1 >Science</h1>',
                '<img src="https://img.icons8.com/material/4ac144/256/user-male.png">'
            ];

            var i = 0;
            $("#claim").html(classes[i]);
            setInterval(function() {

                i = (i + 1) % classes.length;
                $("#claim").html(classes[i]);

            },  800);


        </script>
    </body>

скрипт работает правильно, но я бы хотел остановить его в конце.

заранее спасибо

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

Вы можете использовать clearInterval(), который отменяет повторяющееся по времени действие, которое было ранее установлено вызовом на setInterval().

var classes = [
    '<h1 >Software</h1>',
    '<h1 >project </h1>',
    '<h1 >Engineering</h1>',  
    '<h1 >Science</h1>',
    '<img src="https://img.icons8.com/material/4ac144/256/user-male.png">'
];

var i = 0;
$("#claim").html(classes[i]);

var interval = setInterval(function() {       
  if(i == classes.length - 2){ // stop at the end item
    clearInterval(interval);
  }
  i = (i + 1) % classes.length;
  $("#claim").html(classes[i]);

},  800);
<div class="container">
  <div id="claim"></div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
1 голос
/ 01 октября 2019

Вы можете использовать функцию clearInterval, чтобы остановить это.

<script>
          var classes = [
                '<h1 >Software</h1>',
                '<h1 >project </h1>',
                '<h1 >Engineering</h1>',  
                '<h1 >Science</h1>',
                '<img src="https://img.icons8.com/material/4ac144/256/user-male.png">'
            ];

            var i = 0;
            var intervalId = null;
            $("#claim").html(classes[i]);
            var funcName = function() {
                i = (i + 1) % classes.length;
                $("#claim").html(classes[i]);
                if(classes.length == i + 1) {
                    clearInterval(intervalId);
                }

            };
            intervalId = setInterval(funcName,  800);


        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...