【问题标题】:Cannot implement dynamic height jQuery Wookmark无法实现动态高度 jQuery 书签
【发布时间】:2012-04-18 10:18:50
【问题描述】:

我有一些 div 具有由“点击”功能控制的动态高度,如下所示:

$('.expand').click(function() {
  $(this).next('.collapse').slideToggle();
});

我正在尝试将jQuery wookmark plugin 应用于 div,并且它可以工作,除了通过扩展其中一个部分来动态调整它们的高度。从文档中,我将其中一个示例复制到我的代码中,并且动态高度有效

        $(document).ready(new function() {
          // Prepare layout options.
          var options = {
            autoResize: true, // This will auto-update the layout when the browser window is resized.
            container: $('#container'), // Optional, used for some extra CSS styling
            offset: 30, // Optional, the distance between grid items
            itemWidth: 300 // Optional, the width of a grid item
          };

          // Get a reference to your grid items.
          var handler = $('.outerwrapper');

          // Call the layout function.
          handler.wookmark(options);

          // Capture clicks on grid items.
          handler.click(function(){
            // Randomize the height of the clicked item.
            var newHeight = $('img', this).height() + Math.round(Math.random()*300+30);
            $(this).css('height', newHeight+'px');

            // Update the layout.
            handler.wookmark();
          });
        });

你可以看到这个工作here。我怎样才能做到这一点,以便当您单击 div 内的标题之一时,布局会更新,就像在示例中那样。提前致谢。

【问题讨论】:

    标签: javascript jquery html css responsive-design


    【解决方案1】:

    通常第三方 jQuery 插件包含某种“刷新”或“调整大小”功能。

    快速浏览一下函数,它似乎没有;但是,由于有一个“autoResize”选项(它将在浏览器调整大小时重新加载布局),您可以简单地创建一个触发“resize”事件的点击事件,如下所示:

    JAVASCRIPT:

    $("h1.resize").live("click", function()
    {
        $(window).trigger('resize');
    }); 
    

    http://api.jquery.com/trigger/

    http://api.jquery.com/resize/


    编辑: 再次阅读问题, 看起来像这样: handler.wookmark();

    应该刷新布局(基于您发布的代码)。所以你应该能够使用它而不是调整大小触发器。

    $("h1.resize").live("click", function()
    {
        handler.wookmark();
    }); 
    

    【讨论】:

    • 如果你再看一遍,这个功能现在可以工作了。但是,当我使用 slideToggle 而不是切换时,我得到了意想不到的结果。有什么建议吗?
    • 使用 slideToggle 得到什么样的结果? slideToggle (slideUp, slideDown) 的问题在于发生这种情况的 CSS。我经常喜欢检查使用 Firebug 更改的元素(发生高度变化的单个 div),并在事件发生时查看该元素上的内联 CSS。 -- slideUp/slideDown 使用的 CSS 可能与使 wookmark 工作的 CSS 发生冲突。我的建议是改用 .animate() 。它允许更精细的控制。
    • 在元素上, display: none 转到 display: block
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2011-11-06
    • 2012-06-14
    相关资源
    最近更新 更多