在 jquery 中的特定宽度后停止增加宽度
Stop increase width after a perticular width in jquery
我正在创建一个支持聊天的网站。我想让它看起来与 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 左右。但我希望它不应该减少,而是停在那里,用户不能进一步增加大小。
请大家帮忙。
替换为:
ui.size.width = maxWidth;
有了这个:
return;
如果我对你的问题的理解正确,你希望用户能够将你的 "chatt-demo" class 的大小增加到 1100px,如果它变得更大,它就不会' t 宽度增加。
一个简单的 CSS 解决方案是将其添加到您的 CSS/styling:
.chatt-demo {
max-width: 1100px;
// alternatively max-width: 1100px !important; if the above doesn't do anything
}
ui.size.width = maxWidth;
您已经定义了maxWidth= 250;所以它调整到250。
您可以尝试将其设置为 1100;
ui.size.width = 1100;
参考这个
尝试在 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..
我自己找到了。只需像下面这样更改条件:
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;
}
我正在创建一个支持聊天的网站。我想让它看起来与 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 左右。但我希望它不应该减少,而是停在那里,用户不能进一步增加大小。
请大家帮忙。
替换为:
ui.size.width = maxWidth;
有了这个:
return;
如果我对你的问题的理解正确,你希望用户能够将你的 "chatt-demo" class 的大小增加到 1100px,如果它变得更大,它就不会' t 宽度增加。
一个简单的 CSS 解决方案是将其添加到您的 CSS/styling:
.chatt-demo {
max-width: 1100px;
// alternatively max-width: 1100px !important; if the above doesn't do anything
}
ui.size.width = maxWidth;
您已经定义了maxWidth= 250;所以它调整到250。 您可以尝试将其设置为 1100;
ui.size.width = 1100;
参考这个
尝试在 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..
我自己找到了。只需像下面这样更改条件:
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;
}