Масштабирование картинки при показе в разных координатах.
Всем привет. Имею скрипт:
const flower = [
{src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [140, 40],
},
{src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 80],
},
{src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 180],
},
{src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 40],
},
];
const img = document.querySelector('.kartink img');
const delay = (t) => new Promise (r => setTimeout(r, 1500));
async function cycle () {
await delay(2500);
for (let f of flower) {
img.src = f.src;
img.style = `position:absolute;top:${f.imgpos[0]}px; left:${f.imgpos[1]}px;opacity: 1;`
await delay(2500);
}
img.style.display = 'none';
}
cycle();
Код:
<div class ="kartink">Надо чтобы при разных показах менялся масштаб картинки. Примерно так: - первый показ 50% - второй 30% - третий 70% -четвертый 25% Всем спасибо за участие. |
III,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<style type="text/css">
.kartink {
position: relative;
width: 400px;
height: 400px;
}
.kartink img {
position: absolute;
transform: scale(var(--scale, 1));
}
</style>
</head>
<body>
<div class="kartink">
<img>
</div>
<script>
const flower = [{
src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [140, 40],
scale: .5
},
{
src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 80],
scale: .3
},
{
src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 180],
scale: .7
},
{
src: "https://habrastorage.org/webt/ro/xv/b8/roxvb8fy1dml_inxatpcqwopgl8.jpeg",
imgpos: [40, 40],
scale: .25
}
];
const img = document.querySelector('.kartink img');
const delay = (t) => new Promise(r => setTimeout(r, 1500));
async function cycle() {
await delay(2500);
for (let f of flower) {
img.src = f.src;
Object.assign(img.style, {
top: `${f.imgpos[0]}px`,
left: `${f.imgpos[1]}px`,
opacity: 1,
})
img.style.setProperty("--scale", f.scale);
await delay(2500);
}
img.style.display = 'none';
}
cycle();
</script>
</body>
</html>
|
Огромное спасибо,
рони ! Как всегда выручил, быстро и толково. |
| Часовой пояс GMT +3, время: 17:18. |