Pix主题前端Bug修复记录

    1,518

前言

修复了几个PIX主题的前端BUG,本文章基于pix1.0.7版本,主题作者已经三年没更新了,被迫只能自己修修bug了......

Pix主题前端Bug修复记录

Bug列表:

  • 手机端滑动至底部时顶栏闪动问题
  • 占位加载图不显示的问题

1.顶栏闪动问题

闪动bug

手机端滑动至底部临界时顶栏会闪动,原因:UIkit 判断已经到达 sticky 的“结束点(end)”,因此强制进入 uk-sticky-below 状态,并写入 position: absolute

由于这一瞬间处于滚动极限和布局重排(footer 进入视口)的不稳定状态,UIkit 首次计算得到的 top 值出现偏差,从而形成明显的闪动。

解决办法一:使用css强制保持 position: fixed 等于绕过了这条 fixed→absolute 的边界计算路径,因此问题随之消失。

解决办法二:明确元素或父容器的高度。避免高度计算错乱。

快速解决

在主题设置中插入以下css即可解决。

.top_bar.uk-sticky-fixed {
    position: fixed !important;
    top: 0 !important;
}

2.占位加载图不显示问题

懒加载图

原css

img.lazy.loaded {
    opacity: 1;
    transition: opacity 400ms;
}

img.lazy:not(.loaded) {
    opacity: 0;
}

可以看出主题作者本意是实现图片的懒加载淡入效果,但现有写法存在一个问题:未加载的图片(img.lazy:not(.loaded))被设置为完全透明,这会导致占位图在图片加载完成前也始终不可见。

所以只需要删除这两段css或者将透明度设置为1即可解决。

修复后

懒加载图

快速解决

在主题设置中插入以下css即可解决。

img.lazy:not(.loaded) {
    opacity: 1;
}

若想设置自定义加载图可以替换主题文件中img/lazyload.png,或者修改inc/pix-moment.php:615行

data-fancybox="post-images-'.$pid.'"URL .'/img/lazyload.png"

可修改路径替换为gif图(仅作用于片刻页面,其他页面可以自己找)

摸鱼小屋」 (atmoyu.com)版权所有,引用、转载时必须标明原文出处!

Comments | 2 条评论
  • Huo的头像

    Huo

    太棒了,我也有个这个主题,作者一直没有更新,能来你这里学习了,哈哈,真好!

  • 似水流年的头像

    似水流年

    学习一下。

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息