2017-03-19 26 views
1

我正在嘗試使用提供自動完成功能的Bootstrap plugin。雖然這個插件運行良好,但有時當用戶鍵入文本框的邊界時,自動完成div會超出文本框。有關更多信息,請參閱下圖。如何在父容器中使用CSS或javascript移動div

如何使用CSS或JavaScript確保自動填充div永遠不會超出文本框?

enter image description here

+0

不是一個真正的問題的答案本身,而是鏈接文檔狀態,你可以將'position'參數設置爲'「bottom」'而不是默認的''''符號''。對較小的屏幕分辨率使用不同的位置可能會有效。 – ppajer

+0

@ppajer:謝謝你的提示。我確實看過那個屬性,它使用'position:bottom'會導致自動完成div顯示在文本框下面 – OpenStack

回答

2

您可以掛接到show事件,並檢查是否彈出越來越(你希望實現或任何規則)的textarea的右邊框附近。如果然後改變下拉的位置,這樣它會顯示在插入符號的左側:

onshow: function (e) { 
    var $dropdown = this.$dropdown.find('.dropdown-menu'); 
    var textAreaWidth = this.$element.width(); 
    var dropdownWidth = $dropdown.width(); 
    var dropdownLeft = $dropdown.position().left; 

    // display left of caret if menu gets near right textarea border 
    if (dropdownLeft + dropdownWidth >= textAreaWidth) 
    { 
    $dropdown.css({left: dropdownLeft - dropdownWidth}); 
    } 
} 

完整的示例:https://jsfiddle.net/dowxo2jk/1/

相關問題