使用悬停与几个独特的元素

时间:2015-08-10 23:37:48

标签: javascript jquery html css tumblr

我试图制作Tumblr页面。这个想法是在左侧列出几个书名,当它们悬停时,在右侧显示所述书的信息。

Example

那里,"示例2"正在蓝框中盘旋,因此其相应的信息显示在右侧的红色框中。如果我将鼠标悬停在"示例3"从那里,"示例2"的信息框;会在#34;示例3"会消失。我希望我能在这里有所作为。

现在,我知道我可以用纯CSS实现这一点,但我想这将涉及为列表中的每个标题创建一个自定义CSS类。在避免CSS舞蹈的同时还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

Pure CSS, one class for all titles - Codepen

<强> HTML

<div class="menu">
  <a href="#">Example 1</a>
  <div class="show">
    <h1>EXAMPLE 1</h1>
    <hr>
    <p>text here</p>
  </div>
  <a href="#">Example 2</a>
  <div class="show">
    <h1>EXAMPLE 2</h1>
    <hr>
    <p>text here</p>
  </div>
  <a href="#">Example 3</a>
  <div class="show">
    <h1>EXAMPLE 3</h1>
    <hr>
    <p>text here</p>
  </div>
  <a href="#">Example 4</a>
  <div class="show">
    <h1>EXAMPLE 4</h1>
    <hr>
    <p>text here</p>
  </div>
</div>

<强> CSS

body, html {
  margin: 0;
  padding: 0;
  font-family: 'Roboto', sans-serif;
}

.menu {
  width: 120px;
  height: 300px;
  background-color: #2F43B7;
}

.menu a {
  color: #fff;
  text-decoration: none;
  padding: 10px 15px;
  display: block;
}

.menu a:hover + .show { /* Select .show that is immediately after a */
  opacity: 1;
}
.show {
  transition: 500ms;
  opacity: 0;
  background-color: #B72F2F;
  position: absolute;
  top: 0;
  left: 130px;
  width: 400px;
  height: 300px;
  text-align: center;
}

.show h1 {
  font-size: 46px;
  margin-bottom: 0;
}

.show h1,
.show p {
  color: #fff;
}

.show hr {
  width: 90%;
  border: 2px solid #000;
}

jQuery

相同的效果
$(".show").css("opacity", 0);
$("a").hover(
function(){
    $(this).next(".show").stop().fadeTo("slow",1);
},
function(){
    $(this).next(".show").stop().fadeTo("slow",0);
});