javascript。悬停时的动画逻辑
问题描述:
我有这块内容,我想要显示和隐藏与动画悬停。javascript。悬停时的动画逻辑
首先,我有一个默认的内容元素。如果列表中没有元素被徘徊,那么将会显示一个。当列表中的某个元素被占满时,我想查找相应的content-element并显示它。
我做了一个jsfiddle,显示我的问题。如果你能帮助我用动画做到这一点,那将是非常棒的。谢谢!
任何人都可以在这里提供一些帮助?
jsfiddle.net/xf1b0g9a/2/
答
你可以用一些内置方法尝试像.fadeIn(), .slideDown()
等
$(function() {
//hover
$('a').on('mouseover', switchContent);
$('ul').on('mouseout', function(){
$(".content").hide();
$('.content.default').show();
});
function switchContent(event) {
var id = $(event.currentTarget).attr('data-id');
$(".content").hide();
$(".content#" + id).fadeIn(); // use fadeIn() to see a fade effect.
}
});
ul{border:solid 1px red;}
.content{display:none;}
.content.default{display:block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li> <a data-id="1" href="#">1</a>
</li>
<li> <a data-id="2" href="#">2</a>
</li>
<li> <a data-id="3" href="#">3</a>
</li>
</ul>
<div class="content default">
<h4>default.(show if no element is hovered, hide if other element is hovered)</h4>
<p>default text</p>
</div>
<div class="content" id="1">
<h4>1</h4>
<p>1</p>
</div>
<div class="content" id="2">
<h4>2</h4>
<p>2</p>
</div>
<div class="content" id="3">
<h4>3</h4>
<p>3</p>
</div>
*:我已经改变了标记点点。
答
取而代之的是display
属性,使用visibility
属性和设置opacity
为0。然后使用jquery的animate
功能设置opacity
到1
:
$(".content#"+id).animate({'opacity' : 1});
+0
你介意给我举个例子吗? – user2952238 2015-03-31 13:15:07
的感谢!嗯,如果1,2,3没有徘徊,默认内容应该显示出来。 – user2952238 2015-03-31 12:36:43
然后在这种情况下,你必须在'ul'上绑定'mouseout/mouseleave'事件。 – Jai 2015-03-31 12:44:56
谢谢!如果您改为使用课程进行表演/隐藏,它会怎样?所以你可以做一些CSS转换。 – user2952238 2015-03-31 13:19:46