1

カラーピッカー付きのブートストラップモーダルがあります。色の変更を選択すると、下にスクロールしないとパレット全体が表示されません。

テストとして、jqueryui datepicker をモーダルに配置し、クリックすると完全な datepicker が表示されます。カラーピッカーで同じ機能を得るにはどうすればよいですか? カラーピッカーの z-index を変更してみましたが、何も起こらなかったようです。

(注:モーダルの高さが変わる、これはしたくありません)

これが私のフィドルとコードです:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Datepicker - Default functionality</title>
<script src="http://code.jquery.com/jquery-1.8.1.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/js/bootstrap.min.js"></script>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />

<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>

<link href="http://evoluteur.github.com/colorpicker/css/evol.colorpicker.css" rel="stylesheet" /> 
<script src="http://evoluteur.github.com/colorpicker/js/evol.colorpicker.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
    $("#color_picker").colorpicker();
});


$(function() {
    $( "#datepicker" ).datepicker();
});
</script>
</head>


<body>

    <!-- Button to trigger modal -->
    <a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

    <!-- Modal -->
    <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
    <p>Date: <input type="text" id="datepicker" /></p>
    <input id="color_picker" value="#92cddc"/>
    </div>
    <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
    </div>
    </div>


</body>
</html>
4

3 に答える 3

3

overflow-yモーダル ボディのプロパティを設定して、表示することができます。

#myModal .modal-body {
    overflow-y: visible;
}

編集:

コンテンツがダイアログに収まらない場合は、heightまたはmax-heightプロパティを変更して収まるようにする必要があります。

于 2013-02-16T21:03:18.920 に答える
0

これは回避策の包帯ソリューションのみです。evol.colorpicker.js ソース コードで次の関数を変更できます。おそらく、ソースコードを変更せずに、プロトタイプまたは拡張機能に変換してみることができます。

 _create: function() {
            ..............................
             // change the following code to pass the evt to show palette
    if(showOn==='both' || showOn==='button'){
                e.next().on('click', function(evt){
                    evt.stopPropagation();
                    that.showPalette(evt);
                });
            }
                     }               
             }
              ....................


  showPalette: function (e) {       
    if(this._enabled){
        this._active=true;
        $('.colorPicker').not('.'+this._id).colorpicker('hidePalette');
        if(this._palette===null){
            this._palette = $('#YOUR_DIALOG_DIV_ID')                                        
                .after(this._paletteHTML()).next()
                .css({ top: e.clientY + 'px', left: e.clientX + 'px', position: 'absolute' })
                .on('click',function(evt){
                    evt.stopPropagation();
                });
            this._bindColors();
            var that=this;
            if(this._isPopup){
                $(document.body).on('click.'+that._id, function(evt){
                    if(evt.target!=that.element.get(0)){
                        that.hidePalette();
                    }
                }).on('keyup.'+that._id, function(evt){
                    if(evt.keyCode===27){
                        that.hidePalette();
                    }
                });
            }
        }
    }
    return this;
},
于 2015-08-11T21:27:25.283 に答える
0

このようにカラーセレクターを開く入力にクリック時にイベントを追加できます

$(document).ready( function (){
    $('#color_picker').click(function (){
        $('.modal-body').animate({minHeight: '300px'});        
    });
});

次に、カラーボックスまたはアニメーションの高さをクリックして元の量に戻します。

于 2013-02-16T21:16:54.363 に答える