javascript - 与页面交互时图像质量下降一秒

标签 javascript jquery html css

当页面以任何方式移动时 - 窗口大小调整、滚动、悬停、用作图标的图像会重新渲染并使侧面褶皱,在具有透明背景和圆形边框(如示例)的图像上非常清楚,是有什么办法可以解决这个问题?示例

<body>
    <style>
        body{
            background: black;
        }
        img{
            max-width: 5vw;
            transition: 1s ease;
        }
        img:hover{
            max-width: 6vw;     
        }
    </style>
    <img src="http://www.iconsdb.com/icons/preview/white/whatsapp-xxl.png">


</body>

在这种情况下,当鼠标悬停时,图像会出现锐利的边界,有些人可能会说是像素化的,几毫秒后它会变回平滑的边界, 这是给你的 fiddle - http://jsfiddle.net/o3qk5uaL/

最佳答案

好问题!

这不是问题,它是网络浏览器如何呈现图片以及过渡如何运行 - 您通过将图片绑定(bind)到动态窗口大小比例来重新绘制图片 - 正在重新计算图片大小,浏览器将在你停止之前不要完全绘制(paint)。 原始图片有其分辨率,当更改图片需要以新分辨率渲染时,原始分辨率看起来最好,这取决于浏览器和 GPU。

我发现了一个可能对您有帮助的小解决方法 - 尝试对那些动态分辨率不断变化的图标使用 SVG 格式。 SVG 没有任何分辨率,它是一种基于 XML 的矢量图像格式,它们非常适合交互和动画。

看看这个比较演示:CodePen

代码:因为我们必须...

<img src="http://www.iconsdb.com/icons/preview/white/whatsapp-xxl.png" />
<br /><br />
<img src="http://8tracks.com/assets/brand/8_icon_white.svg" />

关于javascript - 与页面交互时图像质量下降一秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488179/

相关文章:

javascript - 对事件监听器感到困惑

javascript - 为什么我无法在 jquery 中获取该单选按钮的状态?

javascript - 在使用 jQuery 滚动后滚动/显示之前滚动隐藏导航标题

javascript - 使用ajax加载特定的div内容

apache - jQuery Ajax 中止和快速连续的新请求

javascript - 如何在Javascript中滑动到另一个html页面?

JavaScript Promise then() 排序

javascript - 使用 redux-thunk/redux-observable 和 redux 的回调

php - 鞋子/衬衫尺寸可点击列表而不是下拉菜单

html - 使图像宽度为父 div 的 100%,但不大于其自身宽度