我有一个`div`,高度已经给定,并且使用jQuery过渡到更高的高度。过渡到更高的`div`使用`transition`元素平滑处理。由于`div`扩展转换是线性的,并且具有0.5秒的延迟,我还使用`transition`将7行文字从`opacity: 0`过渡到`opacity:1`。然而,我希望这个转换从上到下进行(第一行比第二行稍快一点,比第三行稍快一点,以此类推),跟随`div`过渡,而不是所有行同时发生。如何实现?以下是代码:
我还没有在CSS代码中添加所有的class,但我可以看到它可以工作,因为我可以为每一行设置不同的过渡时间。现在,这里有一个初学者的问题:如何选择所有在“
$("small").on("click", function() {
$(".post1").toggleClass("show-post");
});
.post1 {
border: 1px solid grey;
margin: 20px auto;
width:33%;
height:125px;
padding:0 10px;
border-radius:4px;
background:#FFFFFF;
color:black;
transition: height 0.5s;
-webkit-transition: height 0.5s;
-moz-transition: height 0.5s;
}
.descr {
opacity:0;
}
small {
position:relative;
left:300px;
bottom:30px;
}
.show-post {
height:350px;
}
.show-post .descr{
opacity:1;
transition:opacity 1s linear;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="post1">
<h4>THis is a concert</h4>
<p>Where: XYZ Arena</p>
<p>When: XYZ h</p>
<small>(Click to expand)</small>
<p class="descr">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
更新:
现在我的代码看起来像:
<script>
$("small").on("click", function() {
$(this).parent().toggleClass("show-post");
$(".first").animate({'opacity':1}, 1000);
$(".second").animate({'opacity':1}, 2000);
$(".third").animate({'opacity':1}, 3000);
$(".fourth").animate({'opacity':1}, 4000);
$(".fifth").animate({'opacity':1}, 5000);
$(".sixth").animate({'opacity':1}, 6000);
$(".seventh").animate({'opacity':1}, 7000);
$(".eight").animate({'opacity':1}, 8000);
});
</script>
.descr {
opacity:0;
}
.first, .second, .third {
opacity:0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="post">
<h4>THis is a concert</h4>
<p>Where: XYZ Arena</p>
<p>When: XYZ h</p>
<small>(Click to expand)</small>
<p class="descr">
<div class="first">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed </div><div class="second">do eiusmod temporincididunt ut labore et dolore magna </div><div class="third">aliqua. Ut enim ad minim veniam, quis nostrud exercitation</div><div class="fourth"> ullamco laboris nisi ut aliquip ex ea commodo consequat.</div><div class="fifth"> Duis aute irure dolor in reprehenderit in voluptate velit esse </div><div class="sixth">cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat </div><div class="seventh">cupidatat non proident, sunt in culpa qui officia deserunt mollit </div><div class="eight">anim id est laborum.</div>
</p>
</div>
.descr
”下的div元素,而不必创建额外的CSS元素并引用其中的每个.class
:“.first, .second, .third
”。尝试过“.descr, div
”,但无效。这是一个很简单的问题,但却没有人提问,因此找不到答案。
div
向上、向右、向左等过渡,但是我还没有找到任何关于实际文本的内容。欢迎任何提示! - Perep
不允许包含div
,你在这里创建了无效的 HTML。请使用span
代替div
。 - CBroe