2013-02-13 3 views
0

У меня есть div с красной рамкой. Я бы хотел, чтобы эта граница исчезла после того, как скажем 3 секунды, когда страница будет загружена. В этом div есть 3 изображения, и я хотел бы, чтобы они были непрозрачными 0,1 после того же времени. Я попытался сделать это с помощью таймера, но он не будет работать. Мне удалось заставить пограничную часть работать, но когда я пытаюсь сделать изображения, они не запускаются, и Аптана говорит там ошибку, где цикл for.Укладка всех элементов массива с помощью петли

function setPlaylist(){ 
    var playlist = document.getElementById('playlist'); 
    var thumbnails = document.getElementsByClassName('thumb').getElementByTagName('img'); 

    for(var i=0,i<thumbnails.length;i++) 
    { 
     thumbnails[i].style.opacity = ('0.1'); 
    } 
    playlist.style.border = ('none'); 
    /*thumbnails.style.opacity = ('0.1');*/ 
} 

function timerPL(){ 
    setTimeout(setPlaylist,3000); 
} 


window.addEventListener('load',timerPL,false); 

ответ

0

Эта функция:

document.getElementsByClassName('thumb').getElementByTagName('img'); 
//    ^
//     \_ It's plural. It'll return an array of elements 

Вам нужно перебирать их:

var thumbs = document.getElementsByClassName('thumb'); 

for (var i = 0; i < thumbs.length; i++) { 
    var thumb = thumbs[i]; 

    ... 
} 

Если вы не заботитесь о старых браузерах, используйте querySelectorAll:

var thumbs = document.querySelectorAll('#playlist .thumb img'); 
+0

Поэтому я должен написать var thumb1, var thumb2 и т. Д. F или каждый элемент? У меня есть только три изображения, похоже, я мог бы просто получить элементы по идентификатору и сделать это без цикла. – Batman

+0

@Batman: Вам нужно поставить исходный цикл внутри цикла, который у меня есть в моем вопросе. Или просто замените вызовы 'getElement ...' с помощью 'querySelectorAll' в конце моего ответа, и он должен работать. – Blender

+0

Если я сохраню их все с помощью querySelectorAll, будет что-то вроде thumbnails.style.opacity = ('0,1'); применяться ко всем элементам в этом списке? Извините, это для меня все ново, пытаясь разобраться в этом. – Batman