0

所以我正在尝试重新创建这里看到的非常酷的悬停效果,当您悬停左侧的大型销售图像时。

Chris Coyier 然后在这里创建了一个超级详细的教程。 基本上在翻转时,这个很酷的对角线剥离背景开始在你的 div/box/image 后面动画。

除非我将 div 包含在列表 (ul li) 中,否则一切正常。一旦我这样做了,我的代码就会停止工作:(有没有办法解决这个问题?或者我犯了什么新手错误?

这是我的代码笔:http: //codepen.io/leongaban/pen/hpzqD

HTML

<ul>
  <li>

    <div class="thumb">
      <div class="thumb-hover"></div>
        <a href="#">
            <img src="http://f.cl.ly/items/3k3d1g3K34470d2v2K3O/50d942d85384a.jpeg"/>
        </a>
    </div>

  </li>
</ul>

CSS

ul li {
list-style: none;
float: left;
}

.thumb {
  width: 376px;
  padding: 15px;
  position: relative;
  float: left;
  margin: 0 20px 0 0;
}
.thumb > img {
  display: block;
  position: relative;
}
.thumb:hover .product-hover, .thumb:active .product-hover {
  opacity: 1;
}

.thumb-hover {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
  background-size: 30px 30px;
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%,   transparent 50%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.1) 75%, transparent 75%, transparent);
  animation: barberpole 0.5s linear infinite;
}

@keyframes barberpole {
  from {
    background-position: 0 0;
  }

  to {
    background-position: 60px 30px;
  }
}
4

2 回答 2

1

看起来您的示例中有一个小错字。.product-hover 应该变成 .thumb-hover

此外,你会希望你的 css 是 .thumb > a{ display: block; 位置:相对;没有那个条动画将在您的图像之上。

在您的 codepen 中,将 scss 更改为以下内容:

> a {
 display: block;
 position: relative;
}
&:hover, &:active {
 .thumb-hover {
   opacity: 1; 
 }

}

http://codepen.io/anon/pen/ACewa

于 2013-02-28T01:06:09.747 回答
0

假设您试图影响<img>代码片段中的 ,这将不起作用:

.thumb > img { ... }

那(特别是>)意味着“将以下规则应用于<img>任何具有 class 的元素的直接后代(子)元素.thumb。” 但是根据您的标记,情况并非如此。尝试仅删除该>CSS 规则定义中的 。

于 2013-02-27T21:15:25.070 回答