首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鼠标悬停时更改div

鼠标悬停时更改div
EN

Stack Overflow用户
提问于 2015-01-12 19:42:48
回答 2查看 246关注 0票数 2

我有一个带有div元素(名为apropos) diplayed的网页。当鼠标在菜单上时,我希望div更改为在完全相同的位置显示另一个名为blog的div。目前,博客div显示在第一篇文章的下面。两者的CSS是相同的。节选:

代码语言:javascript
复制
<a href="#" onMouseOver="show_blog()" onMouseOut="hide_blog()">Blog</a>

<div class="apropos"><p>lorem ipsum1</p></div
<div class="blog"><p>lorem ipsum2</p></div>

<script>
function show_blog() {
    document.getElementsByClassName("apropos")[0].style.visibility = "hidden";
    document.getElementsByClassName("blog")[0].style.visibility = "visible";
}

function hide_blog() {
    document.getElementsByClassName("apropos")[0].style.visibility = "visible";
    document.getElementsByClassName("blog")[0].style.visibility = "hidden";
}
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-12 19:45:50

您需要使用display属性,而不是visibility属性,因为它会留下空间,就像元素仍然在那里一样:

代码语言:javascript
复制
function show_blog() {
    document.getElementsByClassName("apropos")[0].style.display = "none";
    document.getElementsByClassName("blog")[0].style.display = "block";
}

function hide_blog() {
    document.getElementsByClassName("apropos")[0].style.display = "block";
    document.getElementsByClassName("blog")[0].style.display = "none";
}
票数 1
EN

Stack Overflow用户

发布于 2015-01-12 19:51:24

如前所述,将visibility更改为display属性。

只是为了给答案添加另一种方法,这可以很容易地用css解决。由于元素是兄弟姐妹,所以可以使用同级选择器:

代码语言:javascript
复制
#blogAnchor:hover ~ .blog
#blogAnchor:not(:hover) ~ .apropos{
  display: block;
}

#blogAnchor:hover ~ .apropos,
#blogAnchor:not(:hover) ~ .blog{
  display: none;
}
代码语言:javascript
复制
<a id="blogAnchor" href="#">Blog</a>

<div class="apropos"><p>lorem ipsum1</p></div>
<div class="blog"><p>lorem ipsum2</p></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27909537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档