【问题标题】:jQuery Cycle2 – overlay size to match slide's image sizejQuery Cycle2 – 覆盖大小以匹配幻灯片的图像大小
【发布时间】:2013-04-09 02:22:37
【问题描述】:

我正在尝试使用 jQuery 在 Cycle2 幻灯片中获取当前幻灯片的图像大小。

这样我就可以设置出现在 .hover() 上的覆盖 div (.overlay) 的大小。正如您将在fiddle 中看到的那样,它仅从第一张图像中获取大小。图像也会响应,因此.overlay 还需要根据任何窗口大小调整来更新它的大小。

这里又是fiddle 链接,以及完整代码:

var imgwidth = $('.cycle-slide img').width();
var imgheight = $('.cycle-slide img').height();

$('.cycle-slide').hover(function () {        
    $('.overlay', this).css('width', imgwidth).css('height', imgheight).fadeIn();
    }, function() {
    $('.overlay', this).fadeOut();
});

如何让.overlay 匹配每张幻灯片的图像大小?

非常感谢。

【问题讨论】:

    标签: jquery css responsive-design jquery-cycle


    【解决方案1】:

    您可能应该挂钩到cycle-after 事件来设置宽度。类似这样的东西:

    $('.cycle-slideshow').on('cycle-after', function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) {
        $('.overlay', this).css({'width':$('img',incomingSlideEl).css('width'), 'height': $('img',incomingSlideEl).css('height')});
    });
    
    
    $('.cycle-slide').hover(function () {        
        $('.overlay', this).show();
        }, function() {
        $('.overlay', this).fadeOut();
    });
    

    您可能唯一需要做的就是在事件之外设置第一个叠加层的宽度和高度,因为我认为它不会在第一张幻灯片上触发。

    【讨论】:

    • 您的代码和建议完美运行。非常感谢。
    • 很高兴它成功了。这是事件的api。有很多,如果您稍微使用该插件,它们会非常方便:malsup.com/jquery/cycle2/api/#events
    • 这很有用。再次感谢@lucuma
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多