【问题标题】:How to stop a Page from auto-scrolling UP on Mobile devices? (using Blogger Dynamic Views “Mosaic” template)如何阻止页面在移动设备上自动向上滚动? (使用 Blogger 动态视图“马赛克”模板)
【发布时间】:2020-09-28 12:03:16
【问题描述】:

我的网站是:https://testfnm11.blogspot.com,它基于 Blogger 动态视图“马赛克”模板。 (我已将模板设置为在移动设备上显示桌面视图)。

问题: 在移动设备上,在打开的页面上,当我向下滚动页面然后尝试慢慢向上滚动时,页面会立即跳到顶部。因此,不可能缓慢地向上滚动页面,几乎不可能滚动到页面的特定部分。

所有移动设备、iOS 和 Android 以及 iPad 都会出现此问题。但是这个问题在 Mac/Safari 上不存在,页面可以正确地向上/向下滚动。 (我读过有人抱怨它发生在 Windows PC 上,但我自己还没有证实)。

如果有人提出解决方案来阻止页面在移动设备上自动滚动到顶部,我将不胜感激。 (我非常喜欢 Mosaic 模板,所以我不愿意更改为另一个模板。但是,由于这个自动滚动问题,该模板无法真正使用)。

我对 HTML 代码所做的唯一更改是将原始单词“经典”替换为“马赛克”,以强制模板在移动设备上显示马赛克视图。

<b:if cond='data:blog.isMobileRequest'>
        <script expr:src='data:blog.dynamicViewsScriptSrc + &quot;/js/mosaic.js&quot;' type='text/javascript'/>

提前谢谢你!

最好的祝愿, 冰霜迷雾

【问题讨论】:

  • @Bassam 你能帮我解决这个问题吗?谢谢。
  • 嗨@firoze,当然,Blogger 动态视图有点复杂,因为它基于 JavaScript。我认为您之前已经更改了头部的 JavaScript 标记以在移动设备上获得马赛克视图。如果是这样,请将这些标签添加到您的问题中。
  • 您好@Bassam,感谢您的回信。我对 HTML 代码所做的唯一更改是将原始单词“经典”替换为“马赛克”,以强制模板在移动设备上显示马赛克视图。 PS:我已将此代码添加到我的问题中。希望这对您有所帮助?
  • PPS:除了上面的 HTML 修改之外,我还添加了 CSS 代码以在移动设备上显示全屏照片、删除视图样式、使标题栏变得粘滞等。但是这些代码都不是导致我正在描述的问题。这个问题在我添加这些代码之前就已经存在了。
  • 好的,我找到了导致该问题的事件函数。但是我不能覆盖它,因为 JS 代码是外部的。有一个疯狂的解决方案。删除该功能后,我们可以下载文件并将其直接放在您的模板上。

标签: blogger mobile-website mobile-browser blogger-dynamic-views


【解决方案1】:

这是导致滚动问题的代码

z.onResize=function(){clearTimeout(this.F);$(v).hasClass(u)||(this.F=setTimeout($.proxy(this.G,this),500))};

您可以从https://www.blogblog.com/dynamicviews/5e2debdf5385ddcf/js/mosaic.js 下载mosaic.js js 然后删除上面的代码行并将其放在以下脚本标记之间

<script>
// <![CDATA[

 place the code here

// ]]>
</script>

然后,将&lt;script expr:src='data:blog.dynamicViewsScriptSrc + &amp;quot;/js/mosaic.js&amp;quot;' type='text/javascript'/&gt; 替换为新代码。请先备份您的模板。

【讨论】:

  • 我尝试了上述方法,但是当我删除&lt;script expr:src='data:blog.dynamicViewsScriptSrc + &amp;quot;/js/mosaic.js&amp;quot;' type='text/javascript'/&gt; 代码并将修改后的mosaic.js 文件粘贴到该位置时收到错误消息。我收到此错误消息:“org.xml.sax.SAXParseException;lineNumber:557;columnNumber:39;实体名称必须紧跟在实体引用中的“&”之后。”我做错了什么?
  • 另外:在 // 行之间,我应该粘贴修改后的mosaic.js 代码,还是应该粘贴z.onResize=function(){clearTimeout(this.F);$(v).hasClass(u)||(this.F=setTimeout($.proxy(this.G,this),500))}; 代码?最后,我应该删除// &lt;![CDATA[// &lt;![CDATA[ 之间的所有代码,还是保留代码原样并将新代码直接粘贴到// &lt;![CDATA[ 下?
  • 好的,只需将&lt;script expr:src='data:blog.dynamicViewsScriptSrc + &amp;quot;/js/mosaic.js&amp;quot;' type='text/javascript'/&gt; 替换为this code
  • 备份模板后。 &lt;/b:template-skin&gt;&lt;/head&gt; 之间有 10 个标签,将它们替换为 this modified code
  • 巴萨姆,再次感谢你!为迟到的回复道歉,我在回信之前检查了这在所有设备上是否正常工作。我可以确认此模板现在可以在所有设备上完美运行。!所以要澄清一下,现在要在新模板中停止页面自动跳转,只需按照上面的最后一条说明进行操作:&lt;/b:template-skin&gt;&lt;/head&gt; 之间有 10 个标签,并将它们替换为此修改后的代码 (pastebin.com/xJjZ9w7M)。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2021-01-30
  • 2014-01-04
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
相关资源
最近更新 更多