速度网站的背景图片问题

Background image issue with speed website

提问人:SmileMe 提问时间:11/6/2023 最后编辑:volkerschulzSmileMe 更新时间:11/12/2023 访问量:79

问:

您好,我正在尝试解决网站速度优化的问题,但我在这一点上是新手。

我在使用以下方法加载背景图像时遇到了问题:这是在视口中绘制的最大内容元素。

它向我展示了问题就在这里:所以我找到了该代码并检查了它<div class="image-layer" style="background-image: url

public static function getHomeBannerSliderHtml(){
        $objData= HomeBannerModel::where(['status'=>'enable','location'=>'homePageBanner'])->orderBy('order','ASC')->get();
        $htmlContent="";
        foreach($objData as $val){
            if($val->start_date >= date('Y-m-d') && $val->end_date <= date('Y-m-d')){
                HomeBannerModel::where('id', $val->id)->update(['status' => 'disable']);
                continue;
            }
            $htmlContent .= '<div class="slide-item">
            <div class="image-layer" style="background-image: url('.url('storage/app/home-banners/' . $val->banner_image).');"></div>
            <div class="auto-container">
               <div class="content-box">
                  <h1>'.$val->banner_title.'
                  </h1>
               </div>
            </div>
         </div>';
        }
        return $htmlContent;
    }
.banner-section .banner-carousel .slide-item .image-layer {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    -webkit-transition: all 6000ms linear;
    -moz-transition: all 6000ms linear;
    -ms-transition: all 6000ms linear;
    -o-transition: all 6000ms linear;
    transition: all 6000ms linear
}

.banner-section .banner-carousel .active .slide-item .image-layer {
    -webkit-transform: scale(1.15);
    -ms-transform: scale(1.15);
    transform: scale(1.15)
}

.banner-section-two .slide-item .image-layer {
    position: absolute;
    left: 0;
    top: 112px;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    -webkit-transition: all 6000ms linear;
    -moz-transition: all 6000ms linear;
    -ms-transition: all 6000ms linear;
    -o-transition: all 6000ms linear;
    transition: all 6000ms linear
}

.banner-section-two .slide-item .image-layer {
    top: 0px !important;
}

有人可以帮我如何改进它以快速加载吗?

我尝试设置 widht 和 height 选项,但仍然相同。

PHP HTML CSS

评论

0赞 gre_gor 11/6/2023
使图像更小?
0赞 SmileMe 11/6/2023
不是一种选择。这是显示在顶部标题位置的背景图像。
2赞 andrew 11/6/2023
我通过使用绝对定位的 img 元素而不是背景图像来处理这个问题。img 元素具有 srcset 和 sizes 属性,其中包含许多适用于各种屏幕尺寸的表示选项。延伸阅读
0赞 SmileMe 11/9/2023
也许有人可以通过添加延迟加载来提供帮助,它会解决问题吗?如何做到这一点
0赞 SmileMe 11/11/2023
有什么建议如何解决吗?

答:

-2赞 Kiran Gadiwaddar 11/6/2023 #1

将图像压缩到更小的尺寸,使用 Tinypng 等工具。您可以在tinypng网站中上传图像,并使其尺寸更小,以免失去图像质量

-1赞 Godfried 11/8/2023 #2

请记住将您的照片/图像转换为中等压缩的JPEG / JPG格式。 裁剪每个图像以获得适合所有用途的图像(响应式图像)。

  • 这将减轻您的照片/图像的重量,
  • 由于适当的照片/图像,您还将减少页面的加载时间
  • 然后使用响应式属性在页面中根据需要调整照片/图像。