Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как получить значение translate3d? (https://javascript.ru/forum/dom-window/81788-kak-poluchit-znachenie-translate3d.html)

ethereal 29.01.2021 21:40

Как получить значение translate3d?
 
Подскажите, как получить значение tx из transform: translate3d(-490px, 0px, 0px); в переменную через класс?

Нужна просто цифра, без px. В данном случае это 490

Спасибо!

рони 29.01.2021 22:06

ethereal,
https://javascript.ru/forum/dom-wind...tml#post532651

ethereal 29.01.2021 22:12

Не понимаю что там искать, можно как то по подробнее? Я не большой знаток js

рони 29.01.2021 22:16

ethereal,
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" >

<style id=stv>
#el{
        width: 100px;
        height: 50vh;
}
.cl {
        width: 300px;
        height: 100em;
        color: rgb(255,220,220);
        --var1: 100px;
        transform: translate3d(-490px, 0px, 0px);
}
</style>

 </head>
 <body>
<script>
let getStyle = (st, sel, name) => {
        const rules = st.sheet.cssRules
        for (let i=0; i<rules.length; i++) {
                if (sel == rules[i].selectorText) {
                        return rules[i].style.getPropertyValue(name)
                }
        }
}

let st = document.getElementById('stv')
let [tx, ty, tz] = getStyle(st, '.cl', 'transform').match(/-*\d+(?=px)/g);
console.log(tx, ty, tz);
alert(tx);

</script>
</body>
</html>

ethereal 29.01.2021 22:31

Это мне не очень подходит, у меня такой код:

<div class="owl-stage" style="transform: translate3d(-980px, 0px, 0px); transition: all 0.25s ease 0s; width: 3030px;">
</div>


Это слайдер, и значение translate3d меняется вместе с слайдом... Мне нужно получит новое значение каждый раз при смене слайда

рони 29.01.2021 22:37

ethereal,
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" >
</head>
 <body>
<div class="owl-stage" style="transform: translate3d(-980px, 0px, 0px); transition: all 0.25s ease 0s; width: 3030px;">
</div>
<script>

let transform = document.querySelector('.owl-stage').style.transform;
let [tx, ty, tz] = transform.match(/-*\d+(?=px)/g);
console.log(tx, ty, tz);
alert(tx);

</script>
</body>
</html>


Цитата:

Сообщение от ethereal
Мне нужно получит новое значение каждый раз при смене слайда

копайте в сторону https://owlcarousel2.github.io/OwlCa...pi-events.html

ethereal 29.01.2021 22:41

Это работает, спасибо!


Часовой пояс GMT +3, время: 14:22.