在jquery中的特定宽度之后停止增加宽度

时间:2016-07-01 12:30:32

标签: javascript jquery html css chat

我正在创建一个有聊天支持的网站。我希望看起来与gmail聊天完全相同,这意味着用户可以调整聊天字段的大小。

我几乎就是这样,但是有一个问题:当我调整任何一个字段并且如果尺寸达到1100px那么它应该停止进一步增加但它不会停止。我为它制作了代码,但它有一些问题。我的代码如下:

Html代码是:

<div class="chat">

<div class="chatt-demo" id="resizeDiv" style="border: 1px solid #000;width:100px;height:100px;margin left: 10px;">First
</div>
    <div class="chatt-demo" id="resizeDiv" style="border: 1px solid #000;width:100px;height:100px;margin left: 10px;">First
</div>
    <div class="chatt-demo" id="resizeDiv" style="border: 1px solid #000;width:100px;height:100px;margin left: 10px;">First
</div>
    <div class="chatt-demo" id="resizeDiv" style="border: 1px solid #000;width:100px;height:100px;margin left: 10px;">First
</div>
</div>

和jQuery代码是:

$('.chatt-demo').resizable({
                    //containment: ".chart-area",
                    maxHeight: 580, 
                    //maxWidth: 300, 
                    minHeight: 330,
                    minWidth: 200,
                    handles: "n, nw, w, sw",
                    resize: function(event, ui) {
                            // return value from another function
                            restrictSize(ui);
                    }

        });

function restrictSize(ui) {
        var w = GetWidths('.chatt-demo');

        function GetWidths(id) {
            var i = 0;
            maxwidth = 250; 

            $(id).not('.hide-show-chatted').each(function (index) {
                i += parseInt($(this).width(), 10);
            });


            if(i > 1100){ 
             //if(maxwidth <= 0){ maxwidth = 250; }
             //maxheight = 250; ui.size.height = ui.size.height > maxheight ?              maxheight : ui.size.height; 
             //ui.size.width = ui.size.width > maxwidth ? maxwidth : ui.size.width;
             // ui.size.width = 500;

              ui.size.width = maxWidth;
              // here I have tried many solutions like fixed width and all but no succeess.
            }
        }
    }

在上面的代码中,当大小达到1100时,div自动调整大小到250左右。但我希望它不应该减少但是停在那里,并且用户不能进一步增加大小。

请任何人帮忙。

5 个答案:

答案 0 :(得分:1)

替换这个:

ui.size.width = maxWidth;

用这个:

return;

答案 1 :(得分:1)

ui.size.width = maxWidth;

您已定义maxWidth = 250;所以它调整到250。 您可以尝试将其设置为1100;

 ui.size.width = 1100;

参考此

http://jsfiddle.net/Anuja_oab/ukXap/142/

答案 2 :(得分:0)

如果我正确理解了您的问题,您希望用户能够增加您的问题&#34; chatt-demo&#34;等级为1100px,如果大于此值,则只会增加宽度。

一个简单的CSS解决方案就是将其添加到CSS /样式中:

.chatt-demo {
  max-width: 1100px;
  // alternatively max-width: 1100px !important; if the above doesn't do anything
}

答案 3 :(得分:0)

尝试在该div上包装文本..

<div class="chatt-demo" id="resizeDiv" style="border: 1px solid #000;width:200px; max-width:1100px; word-wrap:break-word;height:100px;margin left: 10px;">your text here..

答案 4 :(得分:0)

我自己找到了。只需改变下面的条件:

if(i > 1100){ 
    var mywdth = $('.chatt-demo').width();
    var totalWidth = 0;
    $('.chatt-demo').not('.ui-resizable-resizing , .hide-show-chatted').each(function(index) {
    totalWidth += parseInt($(this).width(), 10);
    });
    var myMaxWidth = parseInt(1100-totalWidth, 10);
    ui.size.width = myMaxWidth;
 }