jQuery 同位素 - 角落邮票问题

发布于 2024-12-28 16:37:39 字数 763 浏览 1 评论 0原文

我开始在我的项目中使用很棒的 JQuery Isotope 插件。一切都很好,但我对角钉选项有一个问题。

我的 masnory 网格中的每个元素都有固定宽度(220px + 5 边距)和随机高度(取决于其内容),我在 CSS 文件中使用 @media 查询来更改不同屏幕分辨率上的列数(页面宽度可以是 230、460 、690..等)。

角戳问题出现在最窄的版本(一列)中 - 角戳被同位素元素覆盖...

本演示中的同位素官方页面上也出现同样的问题:http://isotope.metafizzy.co/custom-layout-modes/masonry-corner-stamp.html(当窗口缩小时,大红色矩形隐藏在其他同位素元素后面)。

我发现它可以像 Masnory 插件演示站点一样正常工作! http://masonry.desandro.com/demos/corner-stamp.html

我已经组合将站点脚本从 Masnory 复制到 Isotope,但没有运气,因为我不太擅长 JS/jQuery :/

如果它能在 Isotope 中工作那就太好了,因为我希望我的站点有过滤选项(在 Masnory 插件中不可用)。

I started using awsome JQuery Isotope plugin in my project. Everything works great, but I'm having one issue with corner-stapm option.

Each element in my masnory grid has fixed width (220px + 5 margin) and random height (depending on its content) and I am using @media queries in CSS file to change columns number on different screen resolution (page width can be 230, 460, 690.. etc.).

Problem with corner stamp occurs in the narrowest version (one column) - the corner stamp is covered with Isotope elements...

The same issue occurs on Isotope official page in this demo: http://isotope.metafizzy.co/custom-layout-modes/masonry-corner-stamp.html (when window is narrowed the big red rectangle hides behind other Isotope elements).

I found that it can work properly as it has in Masnory plugin demo site!
http://masonry.desandro.com/demos/corner-stamp.html

I've already combined to copy site scripts from Masnory to Isotope, but with no luck as I am no too good at JS/jQuery :/

It would be great to have it working in Isotope as I want my site to have filtering options (not available in Masnory plugin).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意中人 2025-01-04 16:37:39

问题出在 Isotope.prototype 脚本中...使用下面的脚本:

$.Isotope.prototype._masonryReset = function() {
    // layout-specific props
    this.masonry = {};
    this._getSegments();
    var i = this.masonry.cols;
    this.masonry.colYs = [];
    while (i--) {
        this.masonry.colYs.push( 0 );
    }

    if ( this.options.masonry.cornerStampSelector ) {
        var $cornerStamp = this.element.find( this.options.masonry.cornerStampSelector ),
            stampWidth = $cornerStamp.outerWidth(true) - ( this.element.width() % this.masonry.columnWidth ),
        cornerCols = Math.ceil( stampWidth / this.masonry.columnWidth ),
        cornerStampHeight = $cornerStamp.outerHeight(true);

        for ( i = ( this.masonry.cols - cornerCols ); i < this.masonry.cols; i++ ) {
            this.masonry.colYs[i] = cornerStampHeight;
        }
    }
};

您会注意到“for”调用的调整,该函数不应该使用 Math.max (不需要)。

Problem is in the Isotope.prototype script...use the one below:

$.Isotope.prototype._masonryReset = function() {
    // layout-specific props
    this.masonry = {};
    this._getSegments();
    var i = this.masonry.cols;
    this.masonry.colYs = [];
    while (i--) {
        this.masonry.colYs.push( 0 );
    }

    if ( this.options.masonry.cornerStampSelector ) {
        var $cornerStamp = this.element.find( this.options.masonry.cornerStampSelector ),
            stampWidth = $cornerStamp.outerWidth(true) - ( this.element.width() % this.masonry.columnWidth ),
        cornerCols = Math.ceil( stampWidth / this.masonry.columnWidth ),
        cornerStampHeight = $cornerStamp.outerHeight(true);

        for ( i = ( this.masonry.cols - cornerCols ); i < this.masonry.cols; i++ ) {
            this.masonry.colYs[i] = cornerStampHeight;
        }
    }
};

You'll notice the adjustment of the "for" call, the function shouldn't be using Math.max (not needed).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文