Проблема возникает при масштабировании двух наложенных изображений (даже одного и того же размера).
В моем сценарии у меня было два прозрачных изображения <img>
одного размера (ширина х высота): фоновое изображениеи обрезанный заголовок.Я наложил их на абсолютную позицию в относительном <div>
контейнере известной ширины.Я пытался увеличивать и уменьшать масштаб, используя обычную функцию масштабирования браузера, и заметил смещение пикселей между двумя слоями при разных коэффициентах увеличения!Тем не менее, 100% идеально подошло.
Технически, я пытался создать один тег <div>
с двумя background-image
URL-адресами (с использованием CSS) одинаковых изображений.Я также попытался иметь SVG, который содержит оба изображения PNG.И я пытался использовать изображения разных размеров (всегда одинаковой ширины, разной высоты).
NONE моих экспериментов сработало.Всегда было смещение на разных масштабах.
Я хотел бы знать, есть ли у кого-нибудь объяснение такого поведения, или я просто что-то упускаю здесь?
В конце концов, предпочтительныйРешение состояло в том, чтобы нарисовать оба изображения на холсте и применить к нему масштабирование.
Я создал следующий JSFiddle, чтобы продемонстрировать мою проблему: изначально ширина равна 100%, попробуйте увеличивать и уменьшать масштаб с помощью кнопок исоблюдайте смещение.
function zoomIn() {
var width = 0;
$('img').each(function() {
$(this).width($(this).width() * 1.1);
width = $(this).width() / 1918 * 100;
});
$('#size').text(Number.parseFloat(width).toPrecision(4) + "%");
}
function zoomOut() {
var width = 0;
$('img').each(function() {
$(this).width($(this).width() / 1.1);
width = $(this).width() / 1918 * 100;
});
$('#size').text(Number.parseFloat(width).toPrecision(4) + "%");
}
document.getElementById("zoomIn").addEventListener("click", zoomIn);
document.getElementById("zoomOut").addEventListener("click", zoomOut);
body {
background: #20262E;
font-family: Helvetica;
}
.container {
position: relative;
width: 1918px;
}
#size {
color: white;
font-size: 15px;
background-color: black;
opacity: 0.4;
position: fixed;
padding: 10px 10px 10px 10px;
}
footer {
position: absolute;
bottom: 0;
}
img {
position: absolute;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<img src="https://imgur.com/N1BK4Kk.png">
<img src="https://imgur.com/LFG04gn.png">
</div>
<div id="size">
</div>
<footer>
<button id="zoomIn">zoom in</button>
<button id="zoomOut">zoom out</button>
</footer>