jquery响应式图像交叉淡入淡出过渡

时间:2014-05-12 16:05:56

标签: javascript jquery html css cross-fade

有谁知道如何转换这个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>

1 个答案:

答案 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 ...

我建议使用两张图片并显示/隐藏图片,而不是使用背景图片进行悬停。