簡體   English   中英

Fancybox使用jQuery-Chosen時內容大小錯誤?

[英]Fancybox is getting the content size wrong when using jQuery-Chosen?

我有一個使用AJAX提取內容的Fancybox彈出窗口。

提取的html是div,包含標題,帶有輸入字段的表和一些按鈕。

問題是,我得到了多余的填充物,或者尺寸太小; 無論如何,我有不必要的滾動條。 我可以使用CSS的overflow或Fancybox的scrolling屬性完全禁用它們,但我不希望完全禁用它們-僅在必要時添加。

我正在使用jQuery Chosen插件,這是導致溢出的原因。 我該如何避免呢?

div內容由客戶端修改,因為它們可以動態添加/刪除行-因此,如果用戶添加的行太多而無法容納在屏幕上,則需要滾動條出現。 到目前為止發生的事情是:

滾動條

這怎么了 這是我的CSS:

#filter-form {
    width: 550px;
}
#filter-form h2 {
    text-align: center;
}
#filter-form .chzn-results {
    max-height: 110px;
}
#filter-form .buttons {
    margin-top: 10px;
    overflow: hidden;
}
#filter-form .buttons .btn_save_filter {
    float: right;
}
#assoc-num, #assoc-string {
    display: none;
}

#filter-form #CustomUserFilters_title {
    width: 350px;
    display: block;
    margin: 0 auto 30px;
}
#add-new-row td {
    text-align: right;
}
#add-new-row button {
    display: inline;
}
#filter-rules, #filter-form .buttons {
    width: 500px;
    margin: 0 auto;
}
#filter-rules td {
    width: 25% !important;
}

寬度設置無關緊要-刪除它們或增加它們都仍然會導致它們-所以並不是Fancybox的自動調整大小功能會認為內容較小-它總是調整大小只是所需的大小, 減去一些導致溢出的像素。

這是HTML(我知道很亂):

<div id="filter-div">
<form action="/customUserFilters/create" id="filter-form">
<h2>Create Filter</h2>
<input placeholder="Filter name" type="text" value="" name="CustomUserFilters[title]" id="CustomUserFilters_title"><table id="filter-rules">
    <tbody><tr class="filter-row">
<td class="td-bool-op"></td>
<td class="td-field-id"><select id="" style="width: 150px;" name="CustomUserFilterSettings[][field_id]">
<option value="2">Name</option>
</select></td>
<td class="td-assoc"><select style="width: 100px;" name="CustomUserFilterSettings[][assoc]">
<option value="=">=</option>
</select></td>
<td class="td-value"><input type="text" value="" name="CustomUserFilterSettings[][value]" id="CustomUserFilterSettings_value"></td></tr>    <tr id="new-filter">

<td class="td-bool-op"><select id="" style="width: 60px;" name="CustomUserFilterSettings[][bool_op]">
<option value="AND" selected="selected">AND</option>
<option value="OR">OR</option>
</select></td>
<td class="td-field-id"><select id="" style="width: 150px;" name="CustomUserFilterSettings[][field_id]">
<option value="2">Name</option>
</select></td>
<td class="td-assoc"><select style="width: 100px;" name="CustomUserFilterSettings[][assoc]">
<option value="=">=</option>
</select></td>
<td class="td-value"><input type="text" value="" name="CustomUserFilterSettings[][value]" id="CustomUserFilterSettings_value"></td>    </tr>
    <tr id="add-new-row">
        <td colspan="4">
            <button id="add-new-row-button" class="btn_grey" name="yt0" type="button">+ Add Another Condition</button>        </td>
    </tr>
</tbody></table>
<div class="buttons">
    <button class="btn_orange btn_save_filter" name="yt1" type="button">Create Filter</button>    <button class="btn_grey btn_cancel_filter" name="yt2" type="button">← Cancel</button></div>
</form>

這是Fancybox的初始化:

$('#new_filter_button').fancybox({
    beforeLoad: function() {
        $('.qtip').hide();
    },
    type: 'ajax',
    href: window.baseUrl + '/customUserFilters/create',
    openEffect: 'fade',
    closeEffect: 'fade',
    wrapCSS: 'filters-box'
});

好吧,事實證明, Fancybox隱藏了溢出的內容。

因為我使用的是jQuery Chosen插件 ,所以即使關閉了框,它們的容器仍只在頁面中隱藏-這導致div高於其應有的水平,但是由於某些原因,Fancybox不僅導致對話框更大,因為下拉菜單是隱藏的,因此出於某種原因將其排除在高度之外,盡管它仍占用垂直空間。 然后,水平滾動條占據了對話框的寬度,並導致寬度溢出,這就是垂直滾動條的原因。

該死的! 希望這個答案可以幫助其他人遇到這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM