如何维护固定宽度为Android设备,iPhone布局视口,具有用户可扩展= YES; 使用jQ

2019-09-28 05:26发布

该网站应该有一个流体的布局,调整该装置的宽度,在纵向和横向取向。 这里是我的中继检视区标记:

<meta name="viewport" id="viewportid" content="width=device-width, minimum-scale=1.0, maximum-scale=10.0, user-scalable=yes">

问题是,当用户放大,内容流调整到视觉视口。 我想,以确保内容保持不变。 也就是说,布局视口是由视觉视口不受影响。

我怎样才能防止变焦时流的内容?

非常感谢您的任何帮助。 这已经加重的地狱。

这里是缩小的页面的例子(标度= 1)(的Android 2.1模拟器SDK)

这里是同一页的一个例子,在放大(Android 2.1的模拟器SDK)

Answer 1:

我试着摆弄周围有photoswipe和iScroll4,但我希望用户捏变焦和iScroll4似乎并没有与Android版本<= 1.6的工作,根据测试我的Android模拟器SDK一样。 我想我可以尝试一些更适合我的需要。

所以,据我所知,我可能是非常错误的,有没有办法来跟踪缩放级别,每元视口代码,在Android设备上。 jQuery Mobile的不具备这样的功能; 也许煎茶,PhoneGap的,或者一些Android的Java库方便这一点,我会更乐意被纠正!

那么现在,这不是最好的方法,但我想通了,似乎在1或2个像素是准确的,在最坏的一种方式。 我不知道,Android是否天生就改变的方向改变事件它的缩放级别,但我给我的方法了一枪,它的工作。

下面的代码:

$(document).ready(function(){
  var ViewportWidth = document.documentElement.clientWidth;
  var LayoutWidth = document.documentElement.clientWidth;

  $("#Index").css("width", LayoutWidth);

  var SetLayoutWidth = function() {
    LayoutWidth = Math.round((1/(ViewportWidth/LayoutWidth)) * document.documentElement.clientWidth);
    $("#Index").css("width", LayoutWidth);
  }

  $(window).resize(function() {
    ViewportWidth = document.documentElement.clientWidth;
  });

  $(window).bind("orientationchange", function(event) {
    if (navigator.userAgent.match(/android/i))
      if (Math.abs(window.orientation) == 90 && event.orientation == "landscape")
        SetLayoutWidth();
      else if (!window.orientation && event.orientation == "portrait")
        SetLayoutWidth();
  });
});

当用户放大,视觉视口宽度的变化,它的值被存储。 视觉视口布局视宽度的比率是,比方说,0.8%,用户放大后。 现在,当用户改变设备的方向,比例由1分为了实现布局视口宽度应全屏什么,在这个例子中,我需要视觉视口宽度的125%。

有一个问题我知道,可能攀升是调整大小事件可能的方向改变事件之前进行发射。 我还没有看到这种情况发生在测试中,但我需要确定如何处理,如果当它发生。

谢谢。



文章来源: How do I maintain fixed-width for layout viewport in android, iphone, with user-scalable=yes; using jQuery Mobile