我发现一段CSS代码在我的网站上运行得很好,但是我觉得麻烦这个效果与规格完全一致。
我尝试做的事情:我希望默认情况下的图像的不透明度为1.0,但是当您滚动任何图像时,图像的不透明度将达到0.3。这当前有效,你可以在这里查看jsfiddle:http://jsfiddle.net/raybullard/C8NMs/
下面是HTML和CSS:
<div id="wrap">
<div id="columns" class="columns_3">
<div class="figure">
<a href="http://www.burton.com"><img src="http://i.imgur.com/ruU04I6.jpg"></a>
</div>
<div class="figure">
<a href="http://www.burton.com"><img src="http://i.imgur.com/ruU04I6.jpg"></a>
</div>
<div class="figure">
<a href="http://www.burton.com"><img src="http://i.imgur.com/ruU04I6.jpg"></a>
</div>
<div class="figure">
<a href="http://www.burton.com"><img src="http://i.imgur.com/ruU04I6.jpg"></a>
</div>
<div class="figure">
<a href="http://www.burton.com"><img src="http://i.imgur.com/ruU04I6.jpg"></a>
</div>
#wrap{
width:240px;
}
.columns_3 .figure{
width:70px;
margin-right:0px;
}
.columns_3 .figure:nth-child(3){
margin-right: 0;
}
#columns .figure:hover{
-webkit-transform: scale(1.1);
-moz-transform:scale(1.1);
transform: scale(1.1);
}
#columns:hover .figure:not(:hover) {
opacity: 0.4;
}
div#columns .figure {
display: inline-block;
background: #FEFEFE;
border: 2px solid #FAFAFA;
box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
margin: 3px 3px 3px 0px;
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
column-break-inside: avoid;
background: -webkit-linear-gradient(45deg, #FFF, #F9F9F9);
opacity: 1;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-o-transition: all .3s ease;
transition: all .3s ease;
-moz-border-radius: 5px;
border-radius: 5px;
}
div#columns .figure img {
width: 60px;
height:50px;
border-bottom: 1px solid #ccc;
margin-bottom: 0px;
}
问题是整个#columns div被调出,因为我只有5个图标,如果你滚动到第六个图标应该是&#39;整个div改变了不透明度。
我想做的是,当用户滚动图标(如果可能)时,让非活动图标在.figure级别(而不是#columns级别)将不透明度更改为0.3。
感谢任何帮助/建议!
感谢。
答案 0 :(得分:2)
只需将 display:inline 的属性值添加到CSS代码的 #columns 块,就可以了。
解决方案:将 display:inline 的属性值添加到 #columns 使其在技术上仅存在于包含某些内容的区域。< / p>
#columns {
display: inline;
/* This block of CSS solves your problem */
}
#wrap {
width: 240px;
}
.columns_3 .figure {
width: 70px;
margin-right: 0px;
}
.columns_3 .figure:nth-child(3) {
margin-right: 0;
}
#columns .figure:hover {
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
transform: scale(1.1);
}
#columns:hover .figure:not(:hover) {
opacity: 0.4;
}
div#columns .figure {
display: inline-block;
background: #FEFEFE;
border: 2px solid #FAFAFA;
box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
margin: 3px 3px 3px 0px;
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
column-break-inside: avoid;
background: -webkit-linear-gradient(45deg, #FFF, #F9F9F9);
opacity: 1;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-o-transition: all .3s ease;
transition: all .3s ease;
-moz-border-radius: 5px;
border-radius: 5px;
}
div#columns .figure img {
width: 60px;
height: 50px;
border-bottom: 1px solid #ccc;
margin-bottom: 0px;
}
<div id="wrap">
<div id="columns" class="columns_3">
<div class="figure">
<a href="http://www.burton.com">
<img src="http://i.imgur.com/ruU04I6.jpg">
</a>
</div>
<div class="figure">
<a href="http://www.burton.com">
<img src="http://i.imgur.com/ruU04I6.jpg">
</a>
</div>
<div class="figure">
<a href="http://www.burton.com">
<img src="http://i.imgur.com/ruU04I6.jpg" />
</a>
</div>
<div class="figure">
<a href="http://www.burton.com">
<img src="http://i.imgur.com/ruU04I6.jpg" />
</a>
</div>
<div class="figure">
<a href="http://www.burton.com">
<img src="http://i.imgur.com/ruU04I6.jpg" />
</a>
</div>
答案 1 :(得分:0)
我不知道你是否对jquery开放,但这是一个jquery的解决方案:http://jsfiddle.net/C8NMs/6/
此解决方案适用于具有类.figure的所有元素,无论您将它们放在页面上的什么位置。
$(document).ready(function() {
$('.figure').on('mouseover', function() {
var element = $(this);
$('.figure').not(element).css('opacity', 0.4);
})
$('.figure').on('mouseout', function() {
$('.figure').css('opacity', 1);
});
});
答案 2 :(得分:0)
这种情况正在发生,因为列div扩展到其子节点的大小,并且正在悬停。
如果您不需要在布局的其余部分中进行更多定位,则可以将其剪切
.columns_3 {
height: 0px;
}
所以避免它被徘徊