页面刷新后的响应能力是否正常?(HTML 渲染延迟)

Responsiveness working after a page-refresh? (HTML rendering delayed)

提问人:Utility Monster 提问时间:3/30/2023 最后编辑:Utility Monster 更新时间:3/30/2023 访问量:56

问:

当我将屏幕尺寸更改为手机或小于 768 像素的东西时,搜索栏会显示在顶部并移动 刷新页面后,首先将其添加到正确的位置。然而,它应该从一开始就到位。当我将屏幕大小调整回全宽时,在页面刷新之前它不见了。 您可以检查行为 [链接已删除],只需在浏览器控制台中切换到某些手机屏幕即可。

此行为的 js 是

    function searchwidget(){

if ($(document).width() <= 767)
{
    $('#search_widget').appendTo('.hidden-md-up.text-xs-center.mobile');
}
else if($(document).width() >= 768)
{
    $('.header-top #search_widget').prependTo('.right-nav');
}

这是模板代码

{block name='header_nav'}
   <nav class="header-nav">
   <div class="container">
    <div class="row">
      <div class="hidden-sm-down">
       <div class="col-md-4 hidden-sm-down" id="_desktop_logo">
            <a href="{$urls.base_url}" class="header-logo">
              <img class="logo img-responsive" src="{$shop.logo}" alt="{$shop.name}">
            </a>
        </div>
        
        <div class="col-md-5 col-xs-12 left-nav">
          {hook h='displayNav1'}
        </div>
      
        <div class="col-md-3 right-nav">
            {hook h='displayNav2'}
        </div>
      </div>
      <div class="hidden-md-up text-xs-center mobile">
       
        <div class="pull-xs-right" id="_mobile_user_info"></div>
        <div class="pull-xs-right" id="_mobile_cart"></div>
        <div class="pull-xs-left" id="menu-icon">
          <i class="material-icons d-inline">&#xE5D2;</i>
        </div>
        <div class="top-logo" id="_mobile_logo"></div>
        <div class="clearfix"></div>
        
      </div>
    </div>
</div>
{/块}

如何解决这个问题?

JavaScript CSS 模板 Prestashop 响应能力

评论

0赞 CBroe 3/30/2023
我猜您的函数将元素显式放置在 DOM 中的两个位置之一,只被调用一次 - 但它也必须在视口调整大小后被调用。searchwidget
0赞 Utility Monster 3/30/2023
是的,也许吧。你知道解决方案吗?
1赞 CBroe 3/30/2023
好吧,使用调整大小处理程序再次调用它?
0赞 Utility Monster 3/30/2023
如果那只是那么容易:)这是自定义主题,用于 prestashop,我一直在努力寻找我正在寻找的东西。我不是一个好的 Web 开发人员。我不知道在哪里寻找调整大小处理程序。如果你至少能告诉我就好了?
0赞 CBroe 3/30/2023
“我不知道在哪里寻找调整大小的处理程序。”- 不一定已经有一个,所以添加你自己的。

答:

0赞 Utility Monster 3/30/2023 #1

感谢@CBroe 解决方案的一部分是

function searchwidget(){
    
window.addEventListener('resize', function(event) {
if ($(document).width() <= 767)
{
        $('#search_widget').appendTo('.hidden-md-up.text-xs-center.mobile');
    }
    else if($(document).width() >= 768)
    {
        $('.header-top #search_widget').prependTo('.right-nav');
    }
}, true);
}