如何在iPhone上正确显示Twitter Bootstrap的模态?

时间:2012-08-26 18:35:56

标签: javascript css twitter-bootstrap

以下是该网站的链接: http://daisy.camorada.com/

当您点击“文章”按钮时,它会弹出带有模态的Twitter Bootstrap,而在iPhone上它无法正常显示,如何让模式在iPhone上正常显示?

我不确定这是JavaScript,Bootstrap还是CSS问题。

先谢谢你的帮助,

编辑: “正确显示”的含义如下: 我想让iphone显示它在计算机上出现的引导模式。 以下是模式在计算机浏览器上的显示方式的屏幕截图:screenshot from google chrome on 13" computer

以下是它在iphone上的外观,我希望iphone能像上面的例子一样显示它:

enter image description here

1 个答案:

答案 0 :(得分:1)

我在Twitter Bootstrap v2.0.4(bootstrap-modal.js v2.0.4)中遇到了同样的问题。要解决此问题需要解决两个问题。

问题

  1. CSS:模态类(.modal)设置为{top:50%; }。这使得模态显示在屏幕外。
  2. JS:如果你向下滚动页面,模态bg可能无法正确填充屏幕。模态必须在页面顶部打开。
  3. 解决方案

    <强> CSS

    @media only screen and (max-width: 479px) {
    .modal {
      position: absolute;
      top: 16%; // ADJUSTMENT MADE HERE
      left: 50%;
      z-index: 1050;
      width: 300px;
      margin: -240px 0 0 -150px;
      overflow: auto;
      background-color: #ffffff;
      border: 1px solid #999;
      border: 1px solid rgba(0, 0, 0, 0.3);
      *border: 1px solid #999;
      -webkit-border-radius: 6px;
         -moz-border-radius: 6px;
              border-radius: 6px;
      -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
         -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
              box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
      -webkit-background-clip: padding-box;
         -moz-background-clip: padding-box;
              background-clip: padding-box;
    }
    }
    

    JS

    在bootstrap.js中调整模态show:function()

    show: function () {
        var that = this
          , e = $.Event('show')
    
        that.oldWindowPosition = $(window).scrollTop(); // 
        $('body, html').scrollTop(0); // ADD THIS LINE 
    
        this.$element.trigger(e)
    
        if (this.isShown || e.isDefaultPrevented()) return
    
        $('body').addClass('modal-open')
    
        this.isShown = true
    
        escape.call(this)
        backdrop.call(this, function () {
          var transition = $.support.transition && that.$element.hasClass('fade')
    
          if (!that.$element.parent().length) {
            that.$element.appendTo(document.body) //don't move modals dom position
          }
    
          that.$element
            .show()
    
          if (transition) {
            that.$element[0].offsetWidth // force reflow
          }
    
          that.$element.addClass('in')
    
          transition ?
            that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
            that.$element.trigger('shown')
    
        })
      }
    

    同样,这是我对Twitter Bootstrap 2.0.4的修复