gpt4 book ai didi

jQuery 在元素滚动离开页面时淡出元素,在返回页面时淡出元素

转载 作者:行者123 更新时间:2023-12-03 22:32:00 24 4
gpt4 key购买 nike

我希望元素在滚动离开页面顶部时淡出,然后在滚动回页面时淡入。我编写了一些有效的代码,但我正在寻找更优雅的解决方案。这是我在 jsfiddle 上工作的解决方案:http://jsfiddle.net/wmmead/JdbhV/3/

我想找到一段更短、更优雅的代码,但就是无法完全解决。也许有一个数组和each()方法?如果我在 div 上放置一个类而不是 ID,它会变得更短,但随后它们都会立即消失。我希望每个框在滚动离开页面时淡出。

HTML

<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<div id="box4"></div>
<div id="box5"></div>
<div id="box6"></div>

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);
}
});

最佳答案

您可以通过使用 jQuery 的 .each() 方法来使用属性选择器 '[attr="someattr"]':

$(window).scroll(function () {
$('[id^="box"]').each(function () { // <---loop the divs id starts with #box
if (($(this).offset().top - $(window).scrollTop()) < 20) { //<---mark the $(this).offset().top of current object
$(this).stop().fadeTo(100, 0); //<----fadeOut the current obj
} else {
$(this).stop().fadeTo('fast', 1); //<----fadeIn the current obj
}
});
});

您可以在此处进行演示:

DEMO

关于jQuery 在元素滚动离开页面时淡出元素,在返回页面时淡出元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15894157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com