首页 文章

如何使用vue.js在移动视图中更改背景图像

提问于
浏览
2

我需要使用vue.js在移动和桌面视图中显示不同的背景图像 .

这是代码 .

<img :style="{ backgroundImage: 'url(' + offer.image + ')' }"/>

1 回答

  • 2

    基本上您需要响应式图像,您可以使用媒体查询并根据您的使用情况加载不同的尺寸/图像 . 问题在于您的图像源是动态的,而且:style不支持Media Queries .

    我建议你使用图像的src而不是设置背景图像 . 这样你就可以使用srcset来定义断点并根据它来加载图像 .

    <img src="small.jpg" srcset="small.jpg 320w, medium.jpg 600w, large.jpg 900w" alt="">
    

    仅作为示例,取决于窗口宽度,相应图像被加载 .

    或者您可以使用 <picture> 标记来扩展功能:

    <picture>
      <source media="(min-width: 56.25em)" srcset="large.webp" type="image/webp">
      <source media="(min-width: 56.25em)" srcset="large.jpg">
    
      <source media="(min-width: 37.5em)" srcset="medium.webp" type="image/webp">
      <source media="(min-width: 37.5em)" srcset="medium.jpg">
    
      <source srcset="small.webp" type="image/webp">
      <source srcset="small.jpg">
      <img src="fallback.jpg" alt="">
    </picture>
    

    我还会链接到一个关于网络图像的精彩指南,阅读本文将对您有所帮助:

    https://developers.google.com/web/fundamentals/design-and-ux/responsive/images?hl=en

相关问题