typo3 - 如何将 webp 图像添加为具有回退到 Jpeg 的 div 的背景图像
问题描述
我想将背景图像添加到 webp 格式的 div 并回退到 jpg。
如果是img标签,我们可以这样称呼:
<picture>
<source srcset="image.webp" type="image/webp">
<source srcset="image.jpg" type="image/jpeg">
<img src="image.jpg">
</picture>
以及我们能做些什么以防万一<div class="carousel-item active" style="background-image: url('images/image.jpeg')">
感谢您的任何帮助!
解决方案
这是我的解决方案...您使用隐藏的图片元素加载图像并使用 js 获取加载的图像(回退到 jpg 或 png)。最后,将加载的图像设置为 jquery 作为父 div 的背景。也许该领域有更好的解决方案。
function makeBgImage( img ){
let srcImage;
if ( typeof img.currentSrc === "undefined" ){
//Old browser
srcImage = img.src;
}else{
//Modern browser
srcImage = img.currentSrc;
}
let ref = $(img).parents('div:first');
ref.css('background', 'url(' + srcImage + ')');
if( ref.hasClass('contain') ){
ref.css('background-size', 'contain');
}else{
ref.css('background-size', 'cover');
}
ref.css('background-position', 'center');
ref.css('background-repeat', 'no-repeat');
}
.hidden{display: none;}
.img-container{
width: 100%;
padding-top: 62.5%; /* 8:5 Aspect Ratio */
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="img-container">
<picture class="hidden">
<source srcset="image.webp" type="image/webp">
<img onload="makeBgImage(this)" alt="Image" src="image.png">
</picture>
</div>
推荐阅读
- reactjs - 使用 React 将下拉值传递给 api
- javascript - 将对象中的值与反应中的给定值映射
- azure-devops - 如何阻止用户部署到部署组
- android - 如何使用 WebExtension 计算每个网页的 HTTP 响应
- sql - 在 BigQuery 标准 SQL 视图定义中透视数据
- sql-server - 内存优化表事务提交依赖性问题
- python - 使用 itertools.tee 覆盖迭代器
- swift - 导航到其他页面后,如何在 SwiftUI 中恢复已发布的计时器?
- javascript - 有没有办法动态导入 SCSS 样式
- python - 如何使用 PyTorch 删除所有维度为零的元素?