Вход • Регистрация

Небольшое недопонимание по JavaScript

  • 02 августа 2017 г.
  • Коллеги, опять же непонимание на ровном месте. Хочу сделать слайдер. Есть, казалось бы, простейший код:
    Код

    <script type="text/javascript">
    $(document).ready(function() {
    $('.slide .slider').eq(0).addClass('active').fadeIn(1000);

    setInterval('blockAnimate();', 5000);
    });


    function blockAnimate() {
    var length = $('.slide .slider').length - 1;
    $('.slide .slider').each(function(index) {
    if($(this).hasClass('active') && index != length) {
    $(this).removeClass('active').fadeOut(1000).next('.slider').addClass('active').fadeIn(1000);
    return false;
    } else if (index == length) {
    $(this).removeClass('active').fadeOut(1000);
    $('.slide .slider').eq(0).addClass('active').fadeIn(1000);
    return false;
    }
    });
    </script>


    Подключен
    Код
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>


    CSS тоже проще некуда:
    Код

    .slider{
    width:100%;
    height:100%;
    display: none;
    }


    Итог: скрипт не отрабатывает: не переводит из состояния display: none в active. Никто не сталкивался с тем, что скрипты не работают?
  • 02 августа 2017 г. , редакция: 02 августа 2017 г.
  • Тут лишняя точка с запятой в вызове функции blockAnimate и кавычки не нужны, вы в итоге строку передаете, а не функцию. а самый правильный вариант это создать анонимную функцию, и в ней по желанию уже вызывать функцию, что создали.
    Код
    setInterval('blockAnimate();', 5000);


    Правильный вариант:
    Код
    setInterval(function(){
    blockAnimate();
    }, 5000);


    Еще мое мнение
    Код
    $('.slide .slider').eq(0).addClass('active').fadeIn(1000);

    Плохая практика, страница так будет прыгать, лучше сразу первому слайду прописать класс active, а после js серавно будет менять как ему надо.

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.