【问题标题】:Help with Jquery/Masonry, minor tweak帮助 Jquery/Masonry,小调整
【发布时间】:2011-07-11 11:57:45
【问题描述】:

对于我的一生,我无法弄清楚到底发生了什么。我缺乏 Jquery 知识可能与它有关......

看看这个:http://jsfiddle.net/ryanjay/fgNMJ/

当页面加载时,每张照片之间在高度上都会有很大的差距。当您单击一张照片并展开时,底部的照片会恢复原位。当再次单击照片以将其折叠时,照片会按照加载页面时的位置放置。有道理?

为什么加载页面时照片之间在高度方面存在间隙?我假设它与我正在进行的 (.box img).css() 代码有关......但我就是想不通。

这里也是代码。

jquery:

$(document).ready(function(){

    $('#grid').masonry({
        singleMode: false,
        itemSelector: '.box',
        resizeable: true,
        animate: true
    });

    $('.box img').css({
        width: '100%',
        height: 'auto'
    });

            $('.box').click(function(){
        if ($(this).is('.expanded')){
            restoreBoxes();
        } else {
            $(this)
                // save original box size
                .data('size', [ $(this).width(), $(this).height() ])
                .animate({
                    width: 400
                }, function(){
                    $('#grid').masonry();
                });
            restoreBoxes();
            $(this).addClass('expanded');
        }

        function restoreBoxes(){
            var len = $('.expanded').length - 1;
            $('.expanded').each(function(i){
                var w = $(this).data('width');
                $(this).animate({
                    width: ( w || '200' )
                }, function(){
                    if (i >= len) {
                        $('#grid').masonry();
                    }
                })
                    .removeClass('expanded');
            });
                }
                });
        });

CSS:

.wrap {
    border: 0;
    width: 100%;
}
.box {
    float: left;
    font-size: 11px;
    width: 200px;
    margin: 0px;
    padding: 0px;
    display: inline;
}

【问题讨论】:

    标签: jquery plugins height


    【解决方案1】:

    我想我已经解决了。

    编辑: http://jsfiddle.net/fgNMJ/144/

    删除:

    $('.box img').css({
        width: '100%',
        height: 'auto'
    });
    

    修改 CSS

    .box img{
       width:100%;   
    }
    

    另一个编辑: 您可以将$('.box img').css... 调用移到masonry 调用之上。

    http://jsfiddle.net/fgNMJ/145/

    【讨论】:

    • 不客气。在masonry 设置完所有内容之后,您正在修改img 的css。因此,调整 CSS 或将 jQuery CSS 调用移到 masonry 上方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多