在Android中,灯箱从窗口调整大小消失了视图

时间:2011-09-30 08:38:02

标签: javascript jquery android mobile lightbox

灯箱显示在正确的位置(顶部/左侧居中),但是当用户放大时; lightobx保持在相同位置(不考虑窗口/视图已调整大小/裁剪),

您可以test this here点击标题的蓝色按钮

我正在检查灯箱的代码,我可以看到

$(window).bind('resize', $.proxy(function() {
          if (this.visible)
          {
            this.overlay.resize();
            if (!this.maximized) {
              this.movebox();
            }
          }
        }, this));

在哪里MOVEBOX()是:

function(w, h) {
        var size   = { x: $(window).width(),      y: $(window).height() };
        var scroll = { x: $(window).scrollLeft(), y: $(window).scrollTop() };
        var height = h!=null ? h : this.esqueleto.lightbox.outerHeight();
        var width  = w!=null ? w : this.esqueleto.lightbox.outerWidth();
        var y      = 0;
        var x      = 0;

         //vertically center
        x = scroll.x + ((size.x - width) / 2);

        if (this.visible) {
          y = scroll.y + (size.y - height) / 2;
        } else if (this.options.emergefrom == "bottom") {
          y = (scroll.y + size.y + 14);
        } else {// top
          y = (scroll.y - height) - 14;
        }

        if (this.visible) {

          if (!this.animations.move) {
            this.morph(this.esqueleto.move, {
              'left' : x
            }, 'move');
          }

          this.morph(this.esqueleto.move, {
            'top'  : y
          }, 'move');

        } else {

          this.esqueleto.move.css({
            'left' : x,
            'top'  : y
          });
        }
      }

问题是:我怎样才能正确计算新的高度和新的高度,因此灯箱遵循srcoll / zoom in android(以及在iphone中它移动了一下)

1 个答案:

答案 0 :(得分:0)

我在move() element on window.resize() function not working on Android的回答可能会为您解释这个问题。我猜你用scrollLeft()遇到了一些问题。

悲伤的时候:(