由于元素是绝对定位的,我认为它不需要嵌套在div中。因此我改变从这个HTML:
<div class="left-zone ads">
<div class="element"></div>
</div>
这样:
<div class="left-zone ads"></div>
<div class="element"></div>
我然后调节的CSS的元件定位在相同的位置,因为它是,像这样:
.element{
position: absolute;
top: 60px;
left: -71px;
width: 20px;
height: 30px;
background: green;
}
这允许对象完全独立地操作到父对象,这也使得它可以更灵活地使用它。
为了让动画怎么回事,我不得不改变代码的数位。
你在哪里设置顶级变量,我删除了+“PX”末,以允许不同值的每个动画的设定。这是必需的,因为该元素必须具有最高值(在此情况下为60px),才能将其保留在正确的位置。然后,我复制设置动画的代码并将其重复用于“元素”div,并将60px添加到它。如果这没有意义,那么请查看下面的代码。
$(document).on('scroll', function() {
top = $(window).scrollTop() < offset ? '0' : $(window).scrollTop() - offset;
$('.ads').css({
'top': top + 'px'
});
$('.element').css({
'top': top + 60 + 'px'
});
})
接下来是得到延迟。我第一次尝试jQuery的.delay功能,但它似乎没有工作,所以我做了一个更简单的更改,添加从'广告'div到'元素'div的CSS的转换线,并将持续时间改为半秒。这达到了事后要求的效果!下面是代码:
.element{
position: absolute;
top: 60px;
left: -71px;
width: 20px;
height: 30px;
background: green;
transition: top 1.3s;
}
这里是一个的jsfiddle,如果你想看到它在行动:https://jsfiddle.net/hdn1oyjd/
让我知道如果您有任何问题!
你只是想延迟一方(左),而不是双方? – CodeGodie
我想抓住那个'.element',我想让它的父母延迟半秒,可能会有10个元素在左边,10个在右边。我只创建了一个,以了解我想要的内容 –