Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2018, 20:11
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Активация элементов DOM из состояния "display: none"
Всем доброго времени суток.
Есть вот такая функция:
$('#btnChFrame').click(changeFrame);

    function changeFrame() {
        var randomFrame = getRandom(6);
        $('#img').attr('src', 'images/frames/' + randomFrame + '.png');
    }


Я пробовал создать массив с этими шестью картинками, чтобы потом показывать их по клику мыши: один клик одна картинка; следующий клик: первая заменяется второй - так и не получилось, мозгов не хватило.

Меня хватило только на этот рандомный вывод.

Сейчас подумал, что можно сделать в CSS "display: none" для тех шести картинок и разблокировать их по очереди той же функцией "click". Вопрос в том, как это правильно сделать.
Буду благодарен за любой совет.

P.S.: Может быть есть вариант по-проще или без добавления всех картинок в DOM?
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2018, 20:23
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$('#btnChFrame').click(changeFrame);
var i = 0;
    function changeFrame() {
        $('#img').attr('src', 'images/frames/' + i + '.png');
        i = ++i<=6?i:0;
    }


так?
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2018, 20:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

drakulawz,
$('#btnChFrame').click(changeFrame);
  var randomFrame = 0;
    function changeFrame() {
        randomFrame = ++randomFrame % 6;
        $('#img').attr('src', 'images/frames/' + randomFrame + '.png');
    }
Ответить с цитированием
  #4 (permalink)  
Старый 22.08.2018, 20:41
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от j0hnik
j0hnik
Работает, только ставлю 5 вместо 6 так как откуда-то появляется седьмая (несуществующая) картинка. А если ставлю вместо ++i i++ то вообще 8 картинок делает, можете объяснить почему так?

Сообщение от рони
рони
Ваш код работает отлично. Вот только если я первую функцию, хоть немного, понимаю, то вашу совсем нет. Можете объяснить, что к чему? А именно, разве "%" не выводит целое дробного числа?

З.Ы.: А я вообще в такие дебри (опять) лез:
var frames = $('#img');
        function changeFrame(frames) {
            var index = 0;
            if (index < frames.length) {
                index++;
            } else if (index == frames.length) {
                index = 0;
            } else {}
            return (frames[index]);
        }
Ответить с цитированием
  #5 (permalink)  
Старый 22.08.2018, 20:48
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

drakulawz,
i = ++i<6?i:0;


равно в таком случае стареть надо было
Ответить с цитированием
  #6 (permalink)  
Старый 22.08.2018, 20:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

drakulawz,
<script>
 var randomFrame = 0;
 for (var i = 0; i < 50; i++) {
    randomFrame = ++randomFrame % 6;
    document.write(randomFrame+"<br>")
 }
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 22.08.2018, 20:53
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

рони,
Это уже лишнее, мне цикл не нужен. Есть кнопка на клик по которой должна меняться рамка. Первый вариант отлично подошёл...
Ответить с цитированием
  #8 (permalink)  
Старый 22.08.2018, 20:54
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Всем спасибо за помощь!
Ответить с цитированием
  #9 (permalink)  
Старый 22.08.2018, 20:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от drakulawz
Это уже лишнее, мне цикл не нужен.
это была демонстрация того, что делает код ++ %
Сообщение от drakulawz
Можете объяснить, что к чему? А именно, разве "%" не выводит целое дробного числа?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение и использование элементов DOM из SVG ghost666 Events/DOM/Window 3 15.05.2018 11:49
Удаление событий при удалении DOM элементов nextdrift Events/DOM/Window 4 23.11.2015 01:07
быстрая отрисовка элементов JS (DOM) Brook Events/DOM/Window 2 18.07.2014 00:53
Изменение состояния DOM denysdovhan Events/DOM/Window 10 27.05.2014 12:54
Получить список ВСЕХ элементов DOM Почемучкин Events/DOM/Window 7 16.04.2012 11:33