首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery砖石gutterWidth和CSS融资融券

jQuery砖石gutterWidth和CSS融资融券
EN

Stack Overflow用户
提问于 2014-11-22 20:08:34
回答 1查看 804关注 0票数 1

我需要3列块布局,并使用jQuery砌体插件,但有问题的改变qutterWidth在不同的页面大小。

起初,我试图设置边距-右,但在这种情况下,砖石左定位是不工作的,应该是。

但是,当我给出gutterWidth的保证金时,我的反应能力就会有问题。我不是jQuery方面的专家,所以在调整浏览器大小时,请帮助更改gutterWidth,或者重新评论替代解决方案:(

密码在这里

代码语言:javascript
复制
<div class="masonry">

    <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
    <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
</div>

CSS

代码语言:javascript
复制
.item {
    width: 273px;
    border:1px solid black;
    background: lightgray;
    display:inline-block;
    vertical-align:top;
    margin-bottom:50px;
    margin-right:50px
}

jQ

代码语言:javascript
复制
 $('.masonry').masonry({

      itemSelector: '.item',
      gutter: 68
  });

小提琴http://jsfiddle.net/frontDev111/0vhegec1/1/

更新:

代码语言:javascript
复制
$(window).resize(function() {
        var $gutter = 68;

        if (window.matchMedia("(max-width: 1200px)").matches) {
            $gutter = 30;
        }
        var $container = $('.masonry');
        $container.imagesLoaded( function() {
            $container.masonry({
                itemSelector: '.item',
                gutter: $gutter
            });
        });

    });

但是由于图像加载,我得到了未定义的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-22 20:27:12

您可以使用matchMedia根据媒体查询设置各种排水沟。如下所示:

代码语言:javascript
复制
var $gutter;

if (window.matchMedia("(min-width: 480px)").matches) {
    $gutter = 20;
} else if (window.matchMedia("(min-width: 768px)").matches) {
    $gutter = 40
} else { 
    // and so on
}

$('.masonry').masonry({
    itemSelector: '.item',
    gutter: $gutter
});

如果您需要类似CSS的工作,请将代码放在$(window).resize中。

代码语言:javascript
复制
$(window).resize(function() {
    // code
});

这将导致每次用户调整浏览器大小时都会触发代码。但是请不要在resize中放置非常大和复杂的脚本,这样会大大降低性能。

还可以考虑将代码包装在函数中,然后只触发这些代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27081951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档