搜索

适配效果图片展示:

图片仅做展示,侵联删625197595@qq.com
33333.png

为实现良好的主页适配浸润效果,您只需要三行代码即可完成适配,适配原理:浏览器在主页模式下加载您的页面时,会尝试调用window.rainseeHomeEvent,并传递安全区域的值给网页。您只需要在您的页面中加入如下代码即可快速适配。感谢您对完美主义的支持。

通用js:

window.rainseeHomeEvent = function(top,bottom){
//top 代表距离顶部的高度,bottom代表距离底部的高度
document.querySelector("body").style.padding = `${top}px 0 ${bottom}px 0`;
}

vue:

mounted() {
// 在组件挂载后注入全局方法
let that = this;
window.rainseeHomeEvent = function (top, bottom) {
//在这里作用您的响应式组件,注意要用that;
};
},

如果您不方便处理网页高度,可以使用毛玻璃方案

window.rainseeHomeEvent = function(top,bottom){
function addBottomFrostedDiv(height) {
  const h = (typeof height === 'number') ? `${height}px` : height;
  let div = document.getElementById('bottom-frosted-div');

  if (!div) {
    // 第一次调用才创建
    div = document.createElement('div');
    div.id = 'bottom-frosted-div';
    Object.assign(div.style, {
      position: 'fixed',
      left: '0',
      right: '0',
      bottom: '0',
      background: 'rgba(255, 255, 255, 0.6)',
      backdropFilter: 'blur(10px)',
      WebkitBackdropFilter: 'blur(10px)',
      zIndex: '9999',
      boxSizing: 'border-box'
    });
    document.body.appendChild(div);

    // 记录 body 原始 padding-bottom
    const prevPadding = window.getComputedStyle(document.body).paddingBottom;
    if (!document.body.dataset._origPaddingBottom) {
      document.body.dataset._origPaddingBottom = prevPadding;
    }
  }

  // 更新高度
  div.style.height = h;
  document.body.style.paddingBottom =
    `calc(${document.body.dataset._origPaddingBottom || '0px'} + ${h})`;

  return div;
}
addBottomFrostedDiv(bottom);
}
评论

captcha
仅作者和评论双方可见

博主很懒,啥都没有