@Richswitch
junior

Как реализовать «умный» transform: translate?

Привет!
Не могу понять каким образом можно сделать проверку на выход translate за пределы картинки.
Объяснить лучше на примере.
Вот ссылка, прокрутив чуть ниже можно найти карточки с изображениями, которые перемещаются, если чуть-чуть понаблюдать за перемещением картинки можно заметить, что она по понятным причинам смещается так далеко, что оставляет пустоту - собственно это я и хочу пофиксить.
59e35ab995dd7550536831.png
"use strict";
        var imgArr = document.getElementsByClassName('imgArr');

        [].forEach.call(imgArr, function(item, i, arr) {
            // set variables
            var randValWidth;
            var randValHeight;

            // take the width and height of each image
            var size = {
                'widthImg': arr[i].width,
                'heightImg': arr[i].height
            };

            // set time 
            setInterval(function() {
                // add arguments for tRand() and wRand()
                var randW  = tRand(-size.widthImg/4, size.widthImg/4);
                var randH  = wRand(-size.heightImg/4, size.heightImg/4);
                // start animation
                motionItem();
            }, 2000);

            // find a random value between min and max values
            function tRand(min, max) {
                randValWidth   = Math.floor(Math.random() * (max - min) + min);
            };
            function wRand(min, max) {
                randValHeight  = Math.floor(Math.random() * (max - min) + min);
            };

            // animate elements
            function motionItem() {
                arr[i].style.transform = 'translate3d(' + randValWidth + 'px,' + randValHeight + 'px,' + 0 + ')';
            };
        });


Как решить проблему?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Используйте getBoundingClientRect()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы