有谁知道如何转换这个jQuery效果,而不是固定大小的图像,我需要设置大小百分比(宽度:100%;高度:自动),以便他们可以响应。有什么想法吗?
<script type="text/javascript">
$(function (){
$('img.fade').each(function (){
var $$ = $(this);
var target = $$.css('background-image').replace(/^url|[\(\)'"]/g, '');
$$.wrap('<span style="position: relative;"></span>')
.parent() // span elements
.prepend('<img>')
.find('img:first')
.attr('src', target);
$$.css({
'position' : 'absolute',
'left' : 0,
'top' : this.offsetTop
});
$$.hover(function () {
$$.stop().animate({
opacity: 0.2
}, 250);
}, function () {
$$.stop().animate({
opacity: 1
}, 350);
});
});
});
</script>
答案 0 :(得分:0)
我认为你的意思是背景图像没有缩放。
您可以使用css命令“background-size”来解决此问题。
可以帮助您的值是“覆盖”或“包含”: http://www.w3schools.com/cssref/css3_pr_background-size.asp
var target = $$.css('background-image').replace(/^url|[\(\)'"]/g, '').css({ 'background-size': 'cover' });
如果这不起作用,您可以读出图像的实际绝对宽度,并将其设置为背景大小。但是当你缩放浏览器窗口时,你需要一个resize-event ...
我建议使用两张图片并显示/隐藏图片,而不是使用背景图片进行悬停。