我在div中有一个缩略图。我使用另一个图像作为div的背景,以便它缩放缩略图。当鼠标悬停在缩略图上时,我需要能够将背景图像的位置从底部中心更改为顶部中心。
这是html:
<div class="image">
<a class="zoom1" title="Sample title" href="images/xyz-large.jpg"><img src="images/portfolio-xyz.jpg" alt="XYZ Inc" /></a>
</div>
这是css:
div.image { width: 314px; height: 231px; background: url(images/bg_portfolio-img.png) no-repeat bottom center; }
div.image img { position: relative; top: 8px; left: 8px; }
我想用css这样做,它会是这样的:
div image a.zoom1:hover { background-position: top center;}
但是,这显然不起作用。我对jQuery解决方案持开放态度,但我也需要一些帮助。
提前感谢您的帮助!
答案 0 :(得分:1)
使用.hover()
尝试这样的事情:
$(".image img").hover(function() {
$(this).closest(".image").css({ 'background-position': 'top center' });
}, function() {
$(this).closest(".image").css({ 'background-position': 'bottom center' });
});
当鼠标悬停在<img>
内的class="image"
上时,它会查看div并交换背景,当您向后悬停时则相同。您可以在.css()
调用中添加更多属性,如果您想更多地调整它,read here for details。
答案 1 :(得分:1)
Javascript是一种简单的方法。
如果你只想用CSS做,你可以完全取出额外的div,并将背景图像添加到img中,然后给它填充。这样,您只需更改img:hover的背景位置。
答案 2 :(得分:0)
如果您的链接(a
)完全填写了父div
,则可以
div.image:hover { background-position: center top; }
div
大于a
则更改bg)$(".image a").hover(function(){
$(this).parent('.image').addClass('hover');
},function(){
$(this).parent('.image').removeClass('hover');
});
然后在css
div.image { background-position: center bottom; } //normal
div.hover { background-position: center top; } //override
如果.hover
太模糊,请使用
div#some-holding-div div.hover {...}
我确定你的标记中有一些持有div
另外,你可以直接从jQuery设置css属性(而不是添加类和删除类,你可以设置nackgroundPosition
并将其设置回来)
它只是从我的头脑中,可能可能是为了更好地满足您的需求而定制 - 并且没有经过测试。