我有一个无序列表,每个元素上都有"data-text"标签,还有一个空的 "p" 标签。 我使用 click 事件在每个项目上并从 data-text 标签中获取文本,在此 p 标签中以动画方式加载。
但问题是当点击其他元素时,动画只能在第一次有效,而在其它次数里文本会直接加载而没有动画效果。
演示: jsfiddle
$("ul.list > .list-item").each(function() {
$(this).click(function() {
$(".text-here").text($(this).data('text')).animate({
opacity: '1',
top: '0'
});
});
});
.list-item {
list-style-tyle: none;
display: inline-block;
padding: 15px 25px;
cursor: pointer;
border: 1px solid red;
transition: 0.3s all ease-in-out;
}
.list-item:hover {
background: red;
color: white;
}
.text-here {
position: relative;
top: 40px;
transition: 0.3s all ease-in-out;
opacity: 0;
padding-left: 40px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list">
<li class="list-item" data-text="1 List Item">1</li>
<li class="list-item" data-text="2 List Item">2</li>
<li class="list-item" data-text="3 List Item">3</li>
<li class="list-item" data-text="4 List Item">4</li>
</ul>
<p class="text-here"></p>
提前感谢您!:)