Я хочу переместить изображение из его текущего положения вправо, поэтому мне нужно добавить пиксели в левую позицию, что у него есть прямо сейчас.Как добавить пиксели в текущую позицию элемента?
У меня есть контейнер flex
, в котором у меня есть image
и div
. Оба они центрированы на контейнере с собственностью justify-content: center;
.
Проблема заключается в том, что когда я пытаюсь переместить изображение с позицией absolute
, оно возвращается до ближайшего родителя, у которого есть позиция relative
(его контейнер) и начинает добавлять туда пиксели, и это создает странный визуальный эффект ,
HTML код:
<button type="button" onclick="moveImage()">Move image</button>
<div id="container">
<div id="left" class="block">Left</div>
<div id="center" class="block">
<img id="image" src="https://appharbor.com/assets/images/stackoverflow-logo.png" alt="stackoverflow">
</div>
<div id="right" class="block">Right</div>
</div>
CSS код:
html, body{
width: 100%;
height: 100%;
}
#container{
display: flex;
height: 100%;
}
.block{
flex: 1;
}
#left{
background-color: red;
}
#center{
position: relative;
display: flex;
background-color: yellow;
justify-content: center;
}
#right{
background-color: orange;
}
#divCentered{
width: 50%;
height: 100px;
background-color: brown;
}
Javascript код:
$(document).ready(function() {
var divParent = document.getElementById('center');
var div = document.createElement("div");
div.setAttribute("id", "divCentered");
divParent.appendChild(div);
});
function moveImage(){
$("#image").animate({
left: "+=300px"
}, 1000);
}
JSFiddle, в котором вы можете увидеть, как изображение возвращается до своего родителя и начинает добавлять туда пиксели.
Есть ли способ избежать того, что изображение вернет некоторые пиксели в его родительский элемент и начнет добавлять пиксели в текущее положение?
Заранее благодарен!
Но в моем случае я не знаю, где будет изображение, поэтому я не могу установить начальное левое значение. –