webp格式的图片如何在html中应用

webp格式的图片既然有那么多的好处,那么如何使用这种格式的图片?首先要考虑到兼容性,对于不支持webp格式的图片依然使用原来的方式, 对于支持webp格式的图片则使用新的格式。例如静态资源中包含了webp和img两个文件夹,分别是webp资源和png资源。对于同一个使用背景图的元素, 我们原先是这样设置的

        .elem {
            background-image: url(../img/bg1.png);
            ......
        }

但是我们想在要支持webp格式的,则现在有这样一种方法。先看一下结果:

        [data-webp="0"] .elem {
            background-image: url(../img/bg1.png);
            ......
        }

        [data-webp="1"] .elem {
            background-image: url(../webp/bg1.webp);
            ......
        }

这种通过data-webp属性选择器来判断使用哪种的方式来设置图片,首先判断当前环境是否支持webp方式, 然后将是否支持(1/0)给一个根元素(html)设置为data-webp的属性值,那么怎么判断浏览器环境是否支持webp哪?
代码是:

        function isSupportWebp () {
            // save the results supported by the browser
            var flag = '0'
            // get canvas element
            var canvasEL = document.createElement('canvas')
            // get html element
            var docEl = document.documentElement || document.getElementsByTagName('html')[0]
            // determine whether the browser supports canvas elements
            if (canvasEL.getContext && canvasEL.getContext('2d')) {
                flag = canvasEL.toDataURL('image/webp').indexOf('image/webp') > -1 ? '1' : '0'
            }
            // set data-webp attribute for html
            docEl.setAttribute('data-webp', flag)
            // return supported result
            return flag
        }

        isSupportWebp()

参考文献

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值