菜鸟教程小白 发表于 2022-12-13 02:04:31

javascript - 元视口(viewport)标签选项在 iOS 上不起作用


                                            <p><p></p><div class="snippet"data-lang="js"data-hide="false"data-console="true"data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
&lt;meta charset=&#34;utf-8&#34;&gt;
&lt;meta name=&#34;viewport&#34; content=&#34;width=device-width&#34;&gt;
&lt;title&gt;Fox News&lt;/title&gt;
&lt;link rel=&#34;icon&#34; href=&#34;https://s2.googleusercontent.com/s2/favicons?domain_url=http://foxnews.com&#34; type=&#34;image/gif&#34; sizes=&#34;16x16&#34;&gt;
&lt;style&gt;
    body {
      margin: auto;
    }
   
    .iframe-container {
      position: relative;
      height: 100%;
    }
   
    .iframe-container iframe,
    .iframe-container object,
    .iframe-container embed {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      margin: 0px;
      border: 0;
    }
   
    .social-magnet {
      position: fixed;
      left: 10px;
      font-family: &#39;Source Sans Pro&#39;, sans-serif;
    }
   
    .clx_iframe {
      position: absolute;
      display: block;
      bottom: 30px;
      left: 5%;
      width: 100%;
      height: 100px;
      font-family: sans-serif;
    }
   
    .socialbar {
      width: 87px;
      height: 87px;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
      border: none;
      pointer-events: fill;
      box-shadow: none;
      z-index: 101;
      position: absolute;
      top: 35%;
      left: 147px;
      border-radius: 50% !important;
    }
   
    .profilePhoto {
      width: 87px;
      height: 87px;
      border-radius: 50%;
      border: 3px dashed lightgray;
      box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
      object-fit: contain;
    }
   
    .messageContainer {
      width: 390px;
      height: auto;
      line-height: 18px;
      padding: 10px 15px 10px 15px;
      font-size: 16px;
      border: 2px solid white;
      border-radius: 5px;
      position: absolute;
      text-align: center;
      color: black;
      background-color: white;
      text-shadow: none;
      pointer-events: fill;
      box-shadow: none;
      opacity: 1;
      z-index: 100;
    }
   
    .circle-div {
      background: #4C4E60;
      height: 20px;
      border-radius: 50% !important;
      width: 20px;
      float: right;
      position: relative;
      top: -20px;
      right: -25px;
      color: white;
    }
   
    #minimizeToggle {
      color: white;
      opacity: 0.75;
      cursor: pointer;
      font-weight: bolder;
      font-size: 13px;
      text-decoration: none;
    }
   
    #logosocial {
      float: right;
      text-decoration: none;
      padding-right: 2.5px;
      padding-left: 2.5px;
    }
   
    .logoImage {
      width: 46px;
      height: 20px;
      margin-top: -5px;
      background-repeat: no-repeat;
      background-size: 100%;
      opacity: 0.6;
      position: relative;
      right: -25px;
    }
   
    #profileName {
      width: 77%;
      line-height: 20px;
      font-size: 15px;
      padding-bottom: 3px;
      text-align: left;
      color: rgb(34, 34, 34);
      display: block;
      opacity: 0.6;
      overflow: hidden;
      white-space: nowrap;
      text-decoration: none;
      font-weight: bold;
    }
   
    #message {
      height: 36px;
      margin-top: 4px;
      display: table;
      text-align: left;
      overflow: hidden;
      width: auto;
      letter-spacing: 0.5px;
      color: rgb(34, 34, 34);
    }
   
    #messageText {
      height: auto;
      width: 100%;
      display: table-cell;
      vertical-align: middle;
      font-weight: 400;
      font-size: 14px;
      color: rgb(34, 34, 34);
      word-wrap: break-word;
      word-break: break-all;
    }
   
    #formButton {
      float: right;
      margin-left: 15px;
      cursor: pointer;
      color: rgb(255, 255, 255);
      background-color: #4C4E60;
      width: 90%;
    }
   
    .triangle {
      box-sizing: border-box;
      background: white;
      box-shadow: 0px 3px 3px 0 rgba(0, 0, 0, 0.4);
    }
   
    .triangle::after {
      content: &#34;&#34;;
      position: absolute;
      width: 0;
      height: 0;
      margin-left: -0.5em;
      bottom: -2em;
      left: 45%;
      box-sizing: border-box;
      border: 1em solid black;
      border-color: transparent transparent white white;
      transform-origin: 0 0;
      transform: rotate(-45deg);
      box-shadow: -3px 3px 3px 0 rgba(0, 0, 0, 0.4);
    }
   
    .buttonCTA {
      height: 36px;
      width: auto;
      display: table-cell;
      padding: 0 15px 0 15px;
      margin: 0 0 0 15px;
      border-radius: 5px;
      border: 3px solid #4C4E60;
      line-height: 35px;
      font-weight: 400 !important;
      text-decoration: none;
      text-align: center;
    }
    /* Media Queiries */
   
    @media screen and (max-width: 359px) and (min-width: 320px) {
      .messageContainer {
      width: 300px;
      }
      .socialbar {
      left: 107px;
      }
    }
   
    @media screen and (max-width: 374px) and (min-width: 360px) {
      .messageContainer {
      width: 340px;
      }
      .socialbar {
      left: 125px;
      }
    }
   
    @media screen and (max-width: 413px) and (min-width: 375px) {
      .messageContainer {
      width: 355px;
      }
      .socialbar {
      left: 133px;
      }
    }
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&#34;iframeWrapper&#34; class=&#34;iframe-container&#34;&gt;
    &lt;iframe id=&#34;website_frame&#34; class=&#34;iframe&#34; src=&#34;https://foxnews.com&#34; sandbox=&#39;allow-forms allow-scripts allow-same-origin&#39; allowfullscreen&gt;&lt;/iframe&gt;
    &lt;div class=&#34;social-magnet&#34;&gt;
      &lt;div class=&#34;messageContainer triangle&#34;&gt;
      &lt;div class=&#34;circle-div&#34;&gt;&lt;a id=&#34;minimizeToggle&#34; href=&#34;http://foxnews.com&#34;&gt;x&lt;/a&gt;&lt;/div&gt;
      &lt;a id=&#34;logosocial&#34; href=&#34;https://clickx.io?utm_source=http://www.clickx.io&amp;utm_campaign=contact&amp;utm_medium=offerwidget&#34; target=&#34;_blank&#34;&gt;
          &lt;div class=&#34;logoImage&#34;&gt;&lt;/div&gt;
          &lt;a id=&#34;profileName&#34; href=&#34;http://foxnews.com&#34; target=&#34;_blank&#34;&gt;Kannan Devan&lt;/a&gt;
      &lt;/a&gt;
      &lt;span id=&#34;message&#34;&gt;
          &lt;span id=&#34;messageText&#34; class=&#34;text-left&#34;&gt;
            Good evening. Spent the Evening with a cup of TEA
          &lt;/span&gt;
      &lt;/span&gt;
      &lt;a class=&#34;buttonCTA&#34; id=&#34;formButton&#34; href=&#34;http://foxnews.com&#34; target=&#34;_blank&#34;&gt;
          Hello Guys
      &lt;/a&gt;
      &lt;/div&gt;
      &lt;span class=&#34;socialbar&#34;&gt;
      &lt;a id=&#34;imageLink&#34; href=&#34;http://foxnews.com&#34; target=&#34;_blank&#34;&gt;
          &lt;img id=&#34;image_src&#34; class=&#34;profilePhoto&#34; src=&#39;https://ffb2efd5105ff0aedbc9-9cdacdeebf0faa19b665bf427f0c8092.ssl.cf1.rackcdn.com/assets/new-creator/plus-icon4.png&#39; alt=&#34;Brand Logo&#34;&gt;
      &lt;/a&gt;
      &lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34; charset=&#34;utf-8&#34;&gt;
    var wrapper = document.getElementsByClassName(&#39;social-magnet&#39;);
    var image_wrapper = document.getElementsByClassName(&#39;socialbar&#39;);
    var height = document.getElementsByClassName(&#39;messageContainer&#39;).offsetHeight;
    wrapper.style.bottom = (height + 132).toString() + &#39;px&#39;;
    image_wrapper.style.marginTop = (height + 40).toString() + &#39;px&#39;;
&lt;/script&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>设置 iFrame 属性 <code>scrolling='no'</code> 使它看起来像要在 iOS 上正确加载的移动版网站。 </p>

<pre><code>var ifrm = document.createElement(&#34;iframe&#34;);
ifrm.setAttribute(&#34;src&#34;, &#34;&lt;%= @social_snip.url %&gt;&#34;);
ifrm.id = &#39;ContentFrame&#39;;
ifrm.scrolling = &#39;yes&#39;;
if (check) {
    document.getElementById(&#39;iframeWrapper&#39;).className += &#39; mobile-theme&#39;;
}
var IOS = /iPad|iPhone|iPod/.test(navigator.userAgent) &amp;&amp; !window.MSStream;
if(IOS) {
    ifrm.scrolling = &#39;no&#39;;
}
</code></pre>

<p>上面的代码检查操作系统是否是iOS,如果是则将iFrame的<code>scrolling</code>属性设置为<code>no</code>值。</p></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - 元视口(viewport)标签选项在 iOS 上不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44878131/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44878131/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - 元视口(viewport)标签选项在 iOS 上不起作用