解决iframe加载页面出现白屏闪烁问题

问题描述:

今天维护公司的一个老项目,项目是一个公共页面iframe充当类似vue的router-view,通过这个iframe来切换不同页面。但是在切换或者刷新的时候,会出现白屏闪烁问题,用户体验非常不好!

而且由于项目需要适配2k,4k,8k屏,所以使用了rem单位,而使用rem会导致页面在开始加载的一瞬间会很小,然后突然变大,rem的使用加剧了闪烁幅度;

*由于保密我这里就不录屏了;

解决方法:

相信大家做项目的时候都会创建一个样式初始化文件,对全局标签样式进行统一;

在这个css文件里面添加以下代码,你会发现,原来页面切换可以这样如丝般顺滑→_←

body{
	opacity: 0;
	animation: page-fade-in 1s forwards;
}
@keyframes page-fade-in {
	0% {
    opacity: 0
	}
	
	100% {
    opacity: 1
	}
}

当然如果你想更逗比一点,那就引入animate.css,挑几个逗比的入场动画,或者自己写也行。

这里我推荐几个动画:

@keyframes page-scale-up {
    0% {
        opacity: 0;
        transform: scale(.9)
    }

    100% {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes page-scale-down {
    0% {
        opacity: 0;
        transform: scale(1.8)
    }

    100% {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes page-slide-top {
    0% {
        opacity: 0;
        transform: translateY(-100%)
    }

    100% {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes page-slide-bottom {
    0% {
        opacity: 0;
        transform: translateY(100%)
    }

    100% {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes page-slide-left {
    0% {
        opacity: 0;
        transform: translateX(-100%)
    }

    100% {
        opacity: 1;
        transform: translateX(0)
    }
}

@keyframes page-slide-right {
    0% {
        opacity: 0;
        transform: translateX(100%)
    }

    100% {
        opacity: 1;
        transform: translateX(0)
    }
}

赶紧去试试吧~~~~~~~~~~~~~~

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当在网页中嵌套使用iframe时,可能会遇到一些问题,如样式冲突、无法调整大小、页面速度慢等。下面介绍一些解决iframe嵌套页面问题的方法。 首先,针对样式冲突问题,可以使用CSS命名空间(CSS Namespaces)来解决。通过添命名空间前缀,可以确保不同iframe中的元素样式不会相互冲突。这样可以避免样式被覆盖,保证每个iframe中的样式独立。 其次,针对调整iframe大小问题,可以使用JavaScript来动态调整iframe的大小。通过监听iframe内部内容的高度变化,并将高度值传递给父页面,从而实现自适应调整iframe的大小。这样可以确保iframe始终能够显示完整的内容,提高用户体验。 另外,针对页面速度慢的问题,可以通过延迟或者懒来提升性能。即在页面初次时,只展示iframe的占位符,并不真正的内容。当用户需要查看或者操作iframe时,再对应的内容。这样可以减少初次的数据量,提高页面速度。 此外,还可以考虑使用无需iframe的其他技术来实现类似的功能,如Ajax、Vue.js等。这些技术可以通过异步内容或者组件来避免使用iframe,从而减少了嵌套页面问题。 综上所述,处理iframe嵌套页面问题需要使用CSS命名空间、动态调整大小、延迟或懒等方法。同时也可以考虑使用其他技术来避免使用iframe带来的问题。通过采取这些方法,可以更好地解决iframe嵌套页面问题,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值