当用户将鼠标悬停在我的包装网格中时,我试图模仿这个动画;(注意网格项目包含背景图像):
http://thefoxwp.com/portfolio-packery-4-columns/
为此,他们使用此处突出显示的技术: https://jsfiddle.net/q0d2rqt0/5/
其中一个重叠div隐藏在另一个div下面,就像它上面的另一个层一样:
.box {
position: absolute;
//background: blue;
width: 100%;
height: 100%;
background-image: url("http://lorempixel.com/380/222/nature");
}
.overlay {
position: absolute;
z-index: 1;
opacity: 0;
width: 100%;
height: 100%;
background: white;
-webkit-transition: opacity 0.25s ease-out;
-moz-transition: opacity 0.25s ease-out;
-o-transition: opacity 0.25s ease-out;
transition: opacity 0.25s ease-out;
}
.overlay:hover {
opacity: 1.0;
}

<div class="wrapper">
<div class="box">
</div>
<div class="overlay">
</div>
</div>
&#13;
我试图通过我的打包网格来实现这一点,但我不确定如何实现这一点,因为我不知道如何使我的叠加div层与我的打包网格一起移动时它会起作用。
我可以通过以下方式识别网格中每个项目的悬停效果:
$container.on('mouseenter', ".item", function (event) {
var target = event.target;
var $target = $(target);
//code here to make the opacity adjustment to white on hover on
});
$container.on('mouseleave', ".item-", function (event) {
var target = event.target;
var $target = $(target);
//code here to make the opacity adjustment reverse when hover away
});
所以我已经在这里用正确的网格项确定了悬停机制,无论它的位置在哪里,但我在使用CSS时遇到问题,使得不透明度在没有重叠div层的情况下变为白色。
项目Css:
.item1 {
padding: 5px;
width: 250px;
height: 250px;
-webkit-filter: saturate(1);
filter: saturate(1);
}
.item-content1 {
width: 100%;
height: 100%;
background-size: 100% 100%;
border:1px solid #021a40;
-webkit-transition: width 0.4s, height 0.4s;
-moz-transition: width 0.4s, height 0.4s;
-o-transition: width 0.4s, height 0.4s;
transition: width 0.4s, height 0.4s;
}
.item1.is-expanded {
width: 375px;
height: 400px;
}
.item1:hover {
cursor: pointer;
}
.item1:hover .item-content1 {
}
.item1.is-expanded {
z-index: 2;
}
.item1.is-expanded .item-content1 {
}
.item1.is-viewed {
opacity: 0.8;
-webkit-filter: sepia(1) hue-rotate(200deg);
filter: sepia(1) hue-rotate(200deg);
}
&#13;
有什么想法吗?我可以简单地添加一些图像:使用webkit过渡悬停吗?我在这里误解了不透明层的概念,因为我正在为网格使用背景图像?问题似乎是背景图像不可动画。
答案 0 :(得分:0)
如果我理解正确, 最佳做法是使用带有'overflow:hidden'的容器,并使用'transform:translate'隐藏蒙版内容,其高度等于容器。 100%宽度将响应任何内容。
的CSS:
.container {
width: 300px;
position: relative;
margin: 0 auto;
height: 300px;
overflow:hidden;
}
.org-content {
background: red;
height: 300px;
}
.mask {
height: 300px;
top: 300px;
width: 100%;
background-color: #3aa6db;
opacity: 0;
transition: all ease-in 0s;
left: 0;
overflow: hidden;
position: absolute;
pointer-events: none;
}
.container:hover>.mask {
opacity: 1;
transition: all ease-out 0.2s;
transform: translate(0px, -300px);
transition: all ease-in 0.25s;
}
html:
<div class='container'>
<div class="mask">
masked content
</div>
<div class='org-content'>
original content
</div>
</div>