Цитата:
|
Цитата:
var block_img = document.querySelectorAll('.block_img img'); var block_image_show_one = document.querySelectorAll('.block_image_show_one');//блоки block_img = [].slice.call(block_img); for (var i=0; i<block_image_show_one.length; i++) { var rand = Math.floor(Math.random() * block_img.length); var arrImg = block_img.splice(rand,1)[0]; if(arrImg)block_image_show_one[i].appendChild(arrImg); } |
Цитата:
var block_img = document.querySelectorAll('.block_img img'); - ну так запуская цикл именно для block_img, указывая block_img.length, понимаете же, что это коллекция. Циклом вы лишь перебираете ее, что может потребоваться для каких-то операций. |
Цитата:
var block_image_show_one = document.querySelectorAll('.block_image_show_one, .block_image_show_two, .block_image_show_three'); //блоки и всё работает ,супер (добавляет). Вот только я не совсем понял, что происходит в этом коде var arrImg = block_img.splice(rand,1)[0];он разделяет массив block_img с помощью rand случайно, но что такое [0]? Он оставляет один элемент в массиве, если их больше? |
Или rand - случайное значение массива, т.е. в данном случае - картинка случайная?
|
orionpro,
splice возвращает "вырезку" в виде массива, поэтому [img], вырезали случайно 1 элемент из block_img, чтоб эта картинка больше не участвовала в конкурсе :) получили массив из одной картинки -- но нам нужна сама картинка а не массив, поэтому [img][0] |
Цитата:
|
Особенно эту строчку
block_img = [].slice.call(block_img);. Мы в ней создаем пустой массив, потом... splice возвращает, а call... пока не понимаю. Создаем массив из картинок, что-ли, но потом мы это применяем в переменной arrImg и там опять splice . |
Как я понял,
[].slice.call(block_img) Мы вызываем метод slice прототипа Array (то бишь массива) и применяем его к аргументу block_img ? Поправьте меня пожалуйста. Может я не так понимаю. |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 11:23. |