Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение шрифта (https://javascript.ru/forum/events/76620-izmenenie-shrifta.html)

Alehana 27.01.2019 14:40

Изменение шрифта
 
Пытаюсь создать функцию, которая автомачиски будет подстраивать шрихт так, чтобы он подностью влезал в родной DIV
function chrift(chrift,chrift1){
        var n=getComputedStyle(chrift,null).getPropertyValue("font-size");
        chrift.style.fontSize=getComputedStyle(chrift,null).getPropertyValue("font-size")-10;
        alert(chrift1.offsetWidth);
        alert(chrift.offsetWidth);
        if (chrift1.offsetWidth>chrift.offsetWidth){
            n=(n.replace('px','')-1)+'px';
            chrift.style.fontSize=n;
        }
        alert(n);
        chrift(chrift,chrift1);
    }


Срабатывает только один раз. Как её правильно зациклить ?

ksa 28.01.2019 08:17

Цитата:

Сообщение от Alehana
Как её правильно зациклить ?

Написать таки цикл...

function chrift(chrift,chrift1){
        var n=getComputedStyle(chrift,null).getPropertyValue("font-size");
        chrift.style.fontSize=getComputedStyle(chrift,null).getPropertyValue("font-size")-10;
        alert(chrift1.offsetWidth);
        alert(chrift.offsetWidth);
        while (chrift1.offsetWidth>chrift.offsetWidth){
            n=(n.replace('px','')-1)+'px';
            chrift.style.fontSize=n;
        }
        alert(n);
        chrift(chrift,chrift1);
    }

Но не факт, что сработает... Т.к. все изменения отрисовываются только после отработки скрипта.
Наверняка придется делать через setTimeout()...

Но ты даже тестовый пример не потрудился сделать. Т.ч. даже пробовать не на чем.


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