jQuery исчезают элементы по мере их прокрутки со страницы, затем исчезают по мере их прокрутки
Я хочу, чтобы элементы постепенно исчезали, когда они прокручивались в верхней части страницы, а затем возвращались назад, когда они прокручивались обратно на страницу. Я написал некоторый код, который работает, но я ищу более элегантное решение. Вот решение, которое я работаю над jsfiddle:http://jsfiddle.net/wmmead/JdbhV/3/
Я хотел бы найти более короткий и элегантный фрагмент кода, но просто могуЯ не могу решить это. Может быть, что-то с массивом и методом each ()? Если я помещу класс в div вместо идентификатора, он станет намного короче, но затем они сразу исчезнут. Я хочу, чтобы каждое поле исчезало, когда оно прокручивалось со страницы.
HTML
CSS
#box1, #box2, #box3, #box4, #box5, #box6 {
width: 100px;
height: 100px;
background: orange;
margin:100px auto;
}
#box6 {
margin-bottom:600px;
}
JQuery
var box1Top = $('#box1').offset().top;
var box2Top = $('#box2').offset().top;
var box3Top = $('#box3').offset().top;
var box4Top = $('#box4').offset().top;
var box5Top = $('#box5').offset().top;
var box6Top = $('#box6').offset().top;
$(window).scroll(function () {
if ((box1Top - $(window).scrollTop()) < 20) {
$('#box1').stop().fadeTo(100, 0);
} else {
$('#box1').stop().fadeTo('fast', 1);
}
if ((box2Top - $(window).scrollTop()) < 20) {
$('#box2').stop().fadeTo(100, 0);
} else {
$('#box2').stop().fadeTo('fast', 1);
}
if ((box3Top - $(window).scrollTop()) < 20) {
$('#box3').stop().fadeTo(100, 0);
} else {
$('#box3').stop().fadeTo('fast', 1);
}
if ((box4Top - $(window).scrollTop()) < 20) {
$('#box4').stop().fadeTo(100, 0);
} else {
$('#box4').stop().fadeTo('fast', 1);
}
if ((box5Top - $(window).scrollTop()) < 20) {
$('#box5').stop().fadeTo(100, 0);
} else {
$('#box5').stop().fadeTo('fast', 1);
}
if ((box6Top - $(window).scrollTop()) < 20) {
$('#box6').stop().fadeTo(100, 0);
} else {
$('#box6').stop().fadeTo('fast', 1);
}
});