模态显示在数据表

时间:2015-08-05 15:10:05

标签: javascript jquery html ruby-on-rails modal-dialog

参见编辑:

我有一个模态,我试图循环并在循环中每次显示。到目前为止,我有以下代码,我试图在单击按钮时显示模式。到目前为止,它不是一个模态,而是显示在按钮下方。我觉得我可能错过了javascript,但我似乎无法在网上找到合适的东西。我认为这可能很简单,我只是遗漏了一些东西。任何帮助都会很棒,我还是新手!谢谢!

  <label class="btn" for="modal-x">Add Map</label>

  <input class="modal-state" id="modal-x" type="checkbox" />
    <div class="modal">
      <label class="modal__bg" for="modal-x"></label>
      <div class="modal__inner">
        <label class="modal__close" for="modal-x"></label>
        <h1>Add Mapfile</h1>
        <%= form_for(@posts, multipart: true) do |f| %>
          <div class="field">
            <%= f.hidden_field :location_id, :value => @location.id%>
          </div>
          <div class="field">
            <%= f.file_field :mapfile %>
          </div>
          <p></p>
          <div class="actions" id="submit-map">
            <%= f.submit 'Submit' %>
          </div>
        <%end %>
      </div>
    </div>

修改: 我已经弄清楚如何使模态工作,但现在它显示在我正在使用的数据表后面,而不是在它之前/之前。是否有可以改变的属性将模态带到前面?

这是我的css:

.modal {
  opacity: 0;
  visibility: hidden;  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  text-align: left;
  background: rgba(0,0,0, .9);
  transition: opacity .25s ease;
}

.modal__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  cursor: pointer;
}

.modal-state {
  display: none;
}

.modal-state:checked + .modal {
  opacity: 1;
  visibility: visible;
}

.modal-state:checked + .modal .modal__inner {
  top: 0;
}

.modal__inner {
  transition: top .25s ease;
  position: absolute;
  top: -20%;
  right: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  margin: auto;
  overflow: auto;
  background: #fff;
  border-radius: 5px;
  padding: 1em 2em;
  height: 50%;
}

.modal__close {
  position: absolute;
  right: 1em;
  top: 1em;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}

.modal__close:after,
.modal__close:before {
  content: '';
  position: absolute;
  width: 2px;
  height: 1.5em;
  background: #ccc;
  display: block;
  transform: rotate(45deg);
  left: 50%;
  margin: -3px 0 0 -1px;
  top: 0;
}

.modal__close:hover:after,
.modal__close:hover:before {
  background: #aaa;
}

.modal__close:before {
  transform: rotate(-45deg);
}

@media screen and (max-width: 768px) {

  .modal__inner {
    width: 90%;
    height: 90%;
    box-sizing: border-box;
  }
}

1 个答案:

答案 0 :(得分:0)

在另一个div中包含你的div模式,否则循环中的其他按钮将不会出现。

确保加载bootstrap css和bootstrap js。

在你的宝石文件中有这个。

gem 'bootstrap-sass', '~> 3.3.5'

在你的application.css中

@import "bootstrap-sprockets";
@import "bootstrap";

你的application.js应该看起来像这样

//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require turbolinks
//= require_tree .

尝试此操作并重新启动服务器。