Увеличение под размер монитора translate

97
08 декабря 2020, 13:20

Есть строка которая уменьшает весь обьект.

.containerqwe{
 transform:scale(0.4)translate(0,500px)
}

Когда захожу в полноэкранный режим и даю этой строке увеличение

:-webkit-full-screen .containerqwe{
    transform:scale(0.8)translate(0,500px);

}

Весь обьект увеличивает но на разных мониторах он будет выглядит по разному где то слишком маленьким где то большим как сделать чтобы он увеличивался под размер монитора? может функции transform можно дать какие нибудь такие параметры

 height: 15vh; 
  width: 15vw; 
Answer 1

Через calc() и var() еще можно было бы провернуть это дело, если бы CSS умел определять текущий размер окна в пикселях. Но он вроде не умеет, поэтому можно пробовать через JS:

window.innerWidth дает ширину экрана в пикселях. Умножаем его на 0.15, получаем 15%.
element.clientWidth дает ширину указанного элемента. У нас это demo и у него ширина-высота изначально заданы 150 пикселей. Разделяем 15% ширины окна на Ширину блока, получаем коэффициент, который можно использовать для scale(); (если window.innerWidth*0.15 оказывается = 300, то 300 / 150 как раз будет = 2, scale(2) = увеличит в два раза).

JsFiddle - здесь удобнее будет смотреть (поменяйте размер окна)

(function (){ 
 
function bubu(){ 
let demo = document.getElementById('demo'); 
let coefX = window.innerWidth*0.15/demo.clientWidth; 
let coefY = window.innerHeight*0.15/demo.clientHeight; 
demo.style.transform = 'scale(' + coefX + ',' + coefY + ')'; 
 
//Ненужное демо 
let demo1 = document.getElementById('demo1'); 
demo1.innerHTML =  
'Ширина окна: ' + window.innerWidth +  
', Высота окна: ' + window.innerHeight +  
'<br>Ширина блока: ' + demo.clientWidth +  
', Высота блока:' + demo.clientHeight +  
'<br>Коэфф для scaleX: ' + coefX +  
', Коэфф для scaleY: ' + coefY; 
//конец ненужного 
} 
 
bubu(); 
//Каждый раз вызываем функцию при изменении размера окна. 
window.addEventListener('resize', function(){ bubu(); }); 
})();
#demo {width: 150px; height: 150px; position: absolute; margin: auto; background-color: red; left: 0; right: 0; top: 0; bottom: 0;}
<div id="demo1"></div> 
<div id="demo">123</div>

READ ALSO
Как подключить скрипт Python в C#? [дубликат]

Как подключить скрипт Python в C#? [дубликат]

У меня есть некий скрипт на питоне(со сторонними библиотеками)Я хочу его подключить в готовый C# проект

114
Можно ли сделать контроллер синглтоном (Singletone)

Можно ли сделать контроллер синглтоном (Singletone)

Есть "легаси" проект на ASPNET MVC 4 Как я выяснил в отладчике все контроллеры (а также и репозитории) не являются синглтонами, а создаются каждый...

138
Реверс таймера DispatcherTimer

Реверс таймера DispatcherTimer

Подскажите, как заставить таймер DispatcherTimer идти в обратную сторону?

128