如何使用Javascript隐藏和显示鼠标悬停在包含元素上的元素
How to hide and show elements on mouseover of containing element using Javascript?
我有一个包含div,其中包含'h1'标题和'p'描述。我想要隐藏的"描述段落",而"标题"是可见的页面加载,当鼠标进入"容器",标题渐隐,描述渐隐可见,然后交换可见性回到原来的可见性在mouseout。单靠CSS我无法实现我想要的。
我对javascript的工作原理了解不多,但我可以在某种程度上理解它,任何帮助都会非常感激。如果需要的话,我也可以提供更多的信息。
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
可以使用CSS过渡来实现渐变效果。
首先将所有段落的opacity
设置为零。鼠标悬停在标题上方时,增加段落的不透明度,逐渐降低标题的不透明度。
.container p {
opacity: 0;
-webkit-transition: opacity 1s ease-in;
-moz-transition: opacity 1s ease-in;
-ms-transition: opacity 1s ease-in;
-o-transition: opacity 1s ease-in;
transition: opacity 1s ease-in;
}
.container h1 {
-webkit-transition: opacity 1s ease-in;
-moz-transition: opacity 1s ease-in;
-ms-transition: opacity 1s ease-in;
-o-transition: opacity 1s ease-in;
transition: opacity 1s ease-in;
}
.container:hover p {
opacity: 1;
}
.container:hover h1 {
opacity: 0;
}
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
你也可以使用jQuery的hover
和animate
方法
$('.container').hover(function() {
$(this).find('p').animate({
opacity: 1
}).end().find('h1').animate({
opacity: 0
});
}, function() {
$(this).find('p').animate({
opacity: 0
}).end().find('h1').animate({
opacity: 1
});
});
.container p {
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
<div class="container">
<h1 class="name">Title</h1>
<p>description</p>
</div>
使用。hide()和。show()函数。首先在css中设置description为display: none,同时使用mouseout()和mouseover()函数
<div class="container">
<h1 class="name">Title</h1>
<p id="desc">description</p>
</div>
$('.container').mouseout(function(){
$('.name').show();
$('#desc').hide();
});
$('.container').mouseover(function(){
$('.name').hide();
$('#desc').show();
});
#desc{
display:none;
}
JSfiddle:http://jsfiddle.net/n470z649/
相关文章:
- 如果 e.keyCode 是“输入”按钮,并且元素包含其他文本,则验证条件
- 不要在窗体序列化时将元素包含在 ng-hide 中
- 如果元素包含某些文本
- 元素包含的特定类的 jQuery 计数
- 当表单元素包含带有一些特殊符号的id时,jQuery验证器会出错'无法识别的表达式'
- 若最近的元素包含字符串,则将类添加到元素中
- 如果DOM元素包含字符串,请删除该元素
- 比较el.text()===“;字符串“;即使元素包含“”;字符串”;
- Javascript If List元素包含'不管怎样',don't显示
- font- family:宋体;If元素包含非拉丁字符
- 如果元素包含h1,则从另一个元素中删除h1
- 如何在按下ASP:按钮时使html元素包含文本
- 如果另一个元素包含带jQuery的字符串,则隐藏特定元素
- Bacon.js“splitting"包含数组的事件,每个元素包含多个事件
- 当元素包含类时,如何勾选复选框?
- If数组元素包含一个句号
- 安全问题,当json元素包含html
- 隐藏元素如果另一个元素包含字母,则显示其他元素
- 如何检测哪个元素包含所有其他X元素
- 查找父元素包含文本的jquery元素