Define scroll to bootstrap modal window and not only to your body

0

I have a modal bootstrap window that normally has the scroll for the body.

How can I make the scroll of the modal appear for the entire modal window? since when the body grows, when adding components, I can not see the top of the modal

    
asked by lucho 30.03.2017 в 12:30
source

3 answers

1

With css we can do it with a simple code style="overflow-y: scroll;" in the div main% of modal , we simply add it and already create a scroll only for the modal that you indicate it.

$(document).on('click', '#Crear', function() {
  $('#ModalCrear').modal('show');
});

$(document).on('click', '#agregar_nombres', function() {
  $('#ModalAgregarNombre').modal('show');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />


<button type="button" id="Crear" class="btn btn-primary">
            <span class="fa fa-plus"></span> Agregar
        </button>

<div id="ModalCrear" class="modal fade" role="dialog" style="overflow-y: scroll;">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-tittle">Crear</h4>
      </div>
      <form class="form-horizontal" role="form" id="form-crear">
        <div class="modal-body">
          <div class="row form-group col-md-12">
            <label for="crear_codigo" class="control-label col-sm-2 col-xs-12">Código: </label>
            <div class="col-sm-4 col-xs-6">
              <input type="number" class="form-control" id="crear_codigo" name="crear_codigo">
            </div>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_nombre" class="control-label col-sm-2 col-xs-12">Nombre: </label>
            <div class="col-sm-6 col-xs-10 selectContainer">
              <select id="crear_nombre" name="crear_nombre" class="form-control" style="width: 100%;">
                                            <option value="0">Seleccione...</option>
                                            <option value="1">Clorace</option>
                                            <option value="2">Miovit</option>
        							</select>
            </div>
            <div class="col-sm-2 col-xs-2">
              <button type="button" class="btn btn-primary" id="agregar_nombres">
        								<span class="fa fa-plus"></span>
                            			<span class="hidden-xs"> Agregar Items</span> 
        							</button>
            </div>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_formas_farmaceuticas" class="control-label col-sm-2 col-xs-12">Forma Farmacéutica: </label>
            <div class="col-sm-6 col-xs-10 selectContainer">
              <select id="crear_formas_farmaceuticas" class="form-control" name="crear_formas_farmaceuticas" style="width: 100%;">
                                            <option value="0">Seleccione...</option>
                                            <option value="1">Inyección</option>
                                            <option value="2">Jarabe</option>
        							</select>
            </div>
            <div class="col-sm-1 col-xs-2">
              <button type="button" class="btn btn-primary" id="agregar_formas">
        								<span class="fa fa-plus"></span>
                            			<span class="hidden-xs"> Agregar Items</span> 
        							</button>
            </div>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_presentacion" class="control-label col-sm-2 col-xs-12">Presentación: </label>
            <div class="col-sm-3 col-xs-5">
              <input type="number" class="form-control" id="crear_presentacion" name="crear_presentacion">
            </div>
            <div class="col-sm-4 col-xs-7 selectContainer">
              <select id="crear_unidad_de_medicion_p" class="form-control" name="crear_unidad_de_medicion_p" style="width: 100%;">
                                            <option value="0">Seleccione...</option>
                                            <option value="1">(und) Unidad</option>
                                            <option value="2">(ml) Mililitro</option>
                                            <option value="2">(mg) Miligramo</option>
        							</select>
            </div>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_unidad_teorica" class="control-label col-sm-2 col-xs-12">Unidad Teórica: </label>
            <div class="col-sm-5 col-xs-5">
              <input type="number" class="form-control" id="crear_unidad_teorica" name="crear_unidad_teorica">
            </div>
            <div class="col-sm-4 col-xs-7 selectContainer">
              <select id="crear_unidad_de_medicion_u" class="form-control" name="crear_unidad_de_medicion_u" style="width: 100%;">
                                            <option value="0">Seleccione...</option>
                                            <option value="1">(und) Unidad</option>
                                            <option value="2">(ml) Mililitro</option>
                                            <option value="2">(mg) Miligramo</option>
        							</select>
            </div>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_velocidad" class="control-label col-sm-2 col-xs-12">Velocidad del Producto: </label>
            <div class="col-sm-3 col-xs-5">
              <input type="number" class="form-control" id="crear_velocidad" name="crear_velocidad">
            </div>
            <label class="col-sm-5 col-xs-7">
        							<h4>
        								<sup id="crear_unidad_de_medicion_v_u" name="crear_unidad_de_medicion_v_u">
        									
        								</sup>
        								/
        								<sub id="crear_unidad_de_medicion_v_t" name="crear_unidad_de_medicion_v_t">
        									min
        								</sub>
        							</h4>
        						</label>
          </div>
          <div class="row form-group col-md-12">
            <label class="control-label col-sm-2 col-xs-12">Tiempo Teórico: </label>
            <label class="col-sm-7 col-xs-7">
        							<h4>
        								<sub id="crear_tiempo_teorico" name="crear_tiempo_teorico">
        									
        								</sub>
        							</h4>
        						</label>
          </div>
          <div class="row form-group col-md-12">
            <label for="crear_linea_de_produccion" class="control-label col-sm-2">Linea de Producción:</label>
            <div class="col-sm-8 selectContainer">
              <select id="crear_linea_de_produccion" class="form-control" name="crear_linea_de_produccion" style="width: 100%;">
                                            <option value="0">Seleccione...</option>
                                            <option value="1">Liquidos Esteriles</option>
                                            <option value="2">Liquidos No Esteriles</option>
                                            <option value="2">Solidos</option>
        							</select>
            </div>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">
        						<span class="glyphicon glyphicon-remove"></span>
                            	<span class="hidden-xs"> Cerrar</span> 
        					</button>
          <button type="button" id="Guardar" name="Guardar" class="btn btn-primary">
        						<span class="fa fa-save"></span>
                            	<span class="hidden-xs"> Guardar</span> 
        					</button>
        </div>
      </form>
    </div>
  </div>
</div>

<div id="ModalAgregarNombre" class="modal fade" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-tittle">Agregar</h4>
      </div>
      <form class="form-horizontal" role="form" id="form-agregar">
        <div class="modal-body">
          <div class="form-group col-md-12">
            <label for="agregar_nombre" class="control-label col-sm-4">Nombre: </label>
            <div class="col-sm-8">
              <input type="text" class="form-control" id="agregar_nombre" name="agregar_nombre">
            </div>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">
        						<span class="glyphicon glyphicon-remove"></span><span class="hidden-xs"> Cerrar</span>
        					</button>
          <button type="button" id="GuardarNombre" name="GuardarNombre" class="btn btn-primary">
        						<span class="fa fa-save"></span><span class="hidden-xs"> Guardar</span>
                              
        					</button>
        </div>
      </form>
    </div>
  </div>
</div>

NOTE:

Execute it in the demo screen and open the 2nd modal with the first button of the plus , you will see that it has a scroll for the.

    
answered by 30.03.2017 / 17:01
source
0

I guess what you want to do is apply even scroll to .modal-body for when it exceeds a certain height it shows the scroll , if that is what you want to do just add this rule in your CSS:

.modal-body{
  height: 95px;
  width: 100%;
  overflow-y: auto;
}

This applies a fixed height to the body of the modal so it allows you to see the .modal-header and .modal-footer . I leave the example.

.modal-body{
  height: 100px;
  width: 100%;
  overflow-y: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla tristique et magna nec imperdiet. Mauris nec rutrum nunc. Pellentesque sit amet dui dolor. Proin vel feugiat libero. Vestibulum et neque posuere, varius odio quis, varius quam. Cras lacinia
        sapien a leo tincidunt tincidunt. Integer a nunc non nisl tempus faucibus. Aliquam at efficitur justo. Proin sapien eros, facilisis et interdum in, elementum at elit. Mauris porttitor justo sed ante ultrices tincidunt. Morbi placerat ornare nibh
        in consectetur. Pellentesque sollicitudin vulputate consectetur. Ut vehicula ex pretium lacus faucibus, non venenatis purus tincidunt. Praesent efficitur vitae ex quis aliquam. Phasellus dapibus quam sodales ipsum suscipit, facilisis accumsan
        leo efficitur. Etiam vestibulum maximus sollicitudin. Phasellus pulvinar diam non enim tempus efficitur a id tortor. Aliquam vel consectetur tortor. Praesent fringilla gravida lacus in faucibus. Vestibulum a velit volutpat, vehicula mauris at,
        scelerisque purus. 
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>
    
answered by 30.03.2017 в 18:19
0

What worked for me is to place a style="overflow-y:auto" at div .modal (within the what is the whole dialog) so that a scroll is made in the whole dialogue:

<div class="modal fade in" tabindex="-1" role="dialog" id="DetailsDialog" style="overflow-y: auto; display: block;" aria-hidden="false">
    <div class="modal-dialog" role="document">
        ...
    </div><!-- /.modal-dialog -->
</div>
    
answered by 30.03.2017 в 18:39