【问题标题】:jQuery UI drag/drop sorting comparision using float:left vs display:inline-blockjQuery UI 拖放排序比较使用 float:left 与 display:inline-block
【发布时间】:2010-10-07 06:31:13
【问题描述】:

我这里有两个例子, 这两个示例之间的唯一区别是 一种使用 display:inline-block,另一种使用 float:left,

li.doc_item{display:inline-block;} 对比 li.doc_item{float:left;}

我的问题是 display:inline-block 排序不如 float:left 快或响应快。 我想使用 display:inline-block 因为我正在重新排序的缩略图 有时大小和浮动:当缩略图具有不同的高度和宽度时,左侧效果会有所不同。

任何问题是如何让 block:inline-block 和 float:left 一样快?

您可以在此处找到比较示例: http://dev-server-2.com/drag-drop-sample/

【问题讨论】:

    标签: javascript jquery css jquery-ui-sortable


    【解决方案1】:

    我遇到了同样的问题,我想我应该找出导致它的原因。

    这是因为它们对浮动元素的处理方式不同,也应该在 inline-block 上进行区分。

    试试这个补丁:

    jQuery.ui.sortable.prototype._create = function() {
        var o = this.options;
        this.containerCache = {};
        this.element.addClass("ui-sortable");
    
        //Get the items
        this.refresh();
    
        //Let's determine if the items are floating, treat inline-block as floating as well
        this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) || this.items[0].item.css('display') == 'inline-block' : false;
    
        //Let's determine the parent's offset
        this.offset = this.element.offset();
    
        //Initialize mouse events for interaction
        this._mouseInit();
    };
    

    尤其是这一行:

    this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) || this.items[0].item.css('display') == 'inline-block' : false;
    

    这会改变默认行为。这是一个迟到的答案,但我在网上找不到任何其他答案,所以我认为这会对很多人有所帮助。

    我会尝试为 jQuery 提交一个补丁请求来解决这个问题,但是从 1.8.9 开始,这仍然是一个问题。

    【讨论】:

    • 哇,你是个天才,在使用了你的补丁后显示:inline-block 的拖放工作和浮动一样快:left 感谢您发布它,非常感谢。干杯队友!
    • 很高兴我能帮上忙。密切关注这张票:bugs.jqueryui.com/ticket/6942 以了解他们何时在源代码中修复它。
    • 发现了一些类似的问题,bugs.jqueryui.com/ticket/8872。通过将浮动添加到 .ui-draggable-dragging 来解决它
    • 他们声称已经在 jQuery UI 2.0 中修复了这个问题。
    【解决方案2】:

    对于带有vertical-align:middle; max-height:100%; max-width:100%; 的图像,我会使用带有float:left;text-align:center; 的固定大小的容器 无论尺寸如何,您的图像都将显示为马赛克。

    不知道你的情况是否可行?

    【讨论】:

    • 固定大小的容器嗯嗯是这样的。 li.doc_item { 浮动:左;宽度:250px;高度:250px;文本对齐:居中;垂直对齐:中间;边框:1px 实心#FFFFFF;光标:指针; li 是我的 imgs 容器,这可能对我有用...让我试一试,thanx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2017-05-27
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多