Изменение свойств одного блока при наведении курсора на другой
Задача для меня пока ещё сложная, поэтому прошу помощи.
Необходимо, чтобы при наведении курсора на блок с классом .video_frame[i] плавно исчезал соответствующий ему блок с названием .title_box[i]. Причём нужно сначала плавно изменить opacity для .title_box[i] до нуля, а потом изменить z-index блока на -1. Плавное изменение прозрачности — визуальный эффект, а z-index необходимо изменить, чтобы title_box не перекрывал элементы управления видео. Поддержка старых IE не нужна. Кусок кода, который получилось набросать (естественно, что работает он только для первого .title_box):
var video_frames = document.querySelectorAll('#movies .video_frame');
var title_boxes = document.querySelectorAll('#movies .title_box');
for (var i = 0, video_frame; video_frame = video_frames[i]; i++){
video_frame.onmouseover = hide_title;
video_frame.onmouseout = show_title;
}
var box_style = title_boxes[0].style;
function hide_title(){box_style.opacity='0'; box_style.zIndex='-1'}
function show_title(){box_style.opacity='1'; box_style.zIndex='1'}
Ссылка на сверстанную страницу: http://www.ilyanelin.ru/video Кусок html-кода: <div id="movies"> <div class="video_frame"> <div class="title_box"> <div class="video_title"> <strong>the last september</strong><br />(promo trailer) </div> </div> <iframe src="http://player.vimeo.com/video/46383763?title=0&byline=0&portrait=0&color=ffffff" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> </div> </div> |
var moviesEl = document.getElementById( 'movies' );
var video_frames = moviesEl.getElementsByClassName( 'video_frame' );
var title_boxes = moviesEl.getElementsByClassName( 'title_box' );
for ( var i = -1, video_frame; video_frame = video_frames[++i]; ) {
if ( !(i in title_boxes) ) break;
video_frame.title_box = title_boxes[ i ];
video_frame.onmouseover = hide_title;
video_frame.onmouseout = show_title;
}
var box_style = title_boxes[0].style;
function hide_title(){
var box_style = this.title_box.style;
box_style.opacity = 0;
box_style.zIndex = -1;
}
function show_title(){
var box_style = this.title_box.style;
box_style.opacity = 0;
box_style.zIndex = -1;
}
|
Цитата:
Хотя в нем всеравно opacity не работает.. |
Никита, большое спасибо.
Не могли бы объяснить, почему в данном случае цикл нужно начинать с i = -1 ? |
Чтобы i соответствовала текущему индексу
|
| Часовой пояс GMT +3, время: 09:15. |