草庐IT

javascript - 砌体图像重叠问题

coder 2024-07-21 原文

标题几乎说明了一切,我确实查看了 masonry 的图像插件,但我没有运气,我想知道是否有人可以提供帮助?

脚本做了很多事情,它有过滤器位、动画、显示/隐藏、获取内容的 ajax 等。如果有人能调查为什么它重叠以及我如何解决它,我会很高兴基于以下代码:

 jQuery(function(){
   jQuery('#container').masonry({
   itemSelector: '.box',
   animate: true
   });
  });



   (function ($) {
// Get all menu items with IDs starting with "filter-" and loop over them
$(".menu li[id|=filter]").each(function () {
    // Get the ID add extract the page class name from it (remove "filter-"       from it)
    var type = $(this).attr("id").replace("filter-", "");
    // Get the items in the "webbies" list with that class name
    var items = $("#container div[class~=" + type + "]");
    // Don't do anything if there aren't any
    if (items.length == 0) return;
    // Get a list of the other items in the list
    var others = $("#container>div:not([class~=" + type + "])");
    // Add a click event to the menu item
    $("a", this).click(function (e) {
        // Stop the link
        e.preventDefault();
        // Close open item
        if (openItem) {
            close(openItem);
        }
        items.removeClass("inactive").animate({opacity: 1});
        others.addClass("inactive").animate({opacity: 0.2});
    });
});

$(".reset-filter a").click(function (e) {
    e.preventDefault();
    if (openItem) close(openItem);
    $("div.box.inactive").removeClass("inactive").animate({opacity: 1});
});

var openItem;

// Opens an item
var open = function (item) {
    // Close open item
    if (openItem) close(openItem);
    item.addClass("loading");
    $("img", item).first().hide();
    item.width(340);
    item.height(600);
    if (!item.data('loaded')) {
        $("div.fader", item).load($("a", item).first().attr("href") + " #content", function () {
            stButtons.locateElements();
            stButtons.makeButtons();
            stWidget.init();
            $("#container").masonry('reloadItems', function () {
                $("div.fader", item).animate({opacity: 1}, function () {
                    item.removeClass("loading");
                    $('<a href="#"  class="close">Close</a>"').appendTo(this).click(function (e) {
                        e.preventDefault();
                        close(item);
                        $(document).scrollTo(   $("#navigation-block"), 600, {offset:-50} );
                    });
                    $("div.info", item).fadeIn("slow", function () {
                        $(document).scrollTo( $(".info"),  600, {offset:80} );
                    });
                });
            });
            item.data('loaded', true);
        });
    } else {
        item.removeClass("loading");
        $("#container").masonry('reloadItems', function () {
            $("div.fader", item).animate({opacity: 1}, function () {
                $("div.info", item).fadeIn("slow", function () {
                    $(document).scrollTo( $(".info"), 600,                    {offset:80} );
                });
            });
        });
    }

    // Set open item
    openItem = item;

};

// Closes an item
var close = function (item) {
    $("div.fader", item).animate({opacity: 0});
    $("div.info", item).hide();
    item.animate({width: 150, height: 100}, function () {
        $("img", item).first().fadeIn("slow");
        $("#container").masonry('reloadItems');
    });

    // Reset open item
    openItem = null;
};

$("#container div.box").each(function () {
    var item = $(this);
    item.data('loaded', false);
    $("div.fader", item).css("opacity", 0);
    $("a.close", item).click(function (e) {
        e.preventDefault();
        close(item);
        $(document).scrollTo( $("#navigation-block"), 600, {offset:-50} );
    });
    $("a.showMe", item).click(function (e) {
        e.preventDefault();

        if (item.hasClass("inactive")) return;
        open(item);
    });
}); 
    })(jQuery);
    </script>

最佳答案

我遇到过同样的问题,我开发了两种方法来解决它。附加 onclick-image 后,首先重新加载容器。

1. container.masonry('reload');

其次,可能更重要的是,动态校正周围 div 的高度以匹配图像的高度:

2. // bricks correct height
   var brick = $("#marker #container .brick"); 
   brick.each(function() {
          var content = $(this).find(">div");
          var img = $(this).find("img");
           content.css({
            height: img.attr("height")
           });
        });

所以我的积木看起来像这样:

  <div style="height: 284px; position: static; top: -133px;" class="test">  
       <a class="arrow" href="#" target="_self"><img class="img" src="test.jpg" width="374" height="284"></a>
  </div>

编辑:在你的代码中你有同样的问题,样式中没有高度。

<div style="position: absolute; left: 330px; top: 280px;" class="box item 3d">

在我看来,您的宽度也有问题。我认为您需要为列使用较小的宽度。一个好的值是小图像的宽度和一些边框。

关于javascript - 砌体图像重叠问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971258/

有关javascript - 砌体图像重叠问题的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  3. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  4. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  5. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  6. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  7. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  8. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  9. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

  10. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

随机推荐