Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2017, 12:18
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Управление размеров в стилях через JavaScript
Здравствуйте!
Подскажите пожалуйста, возможно ли при помощи JavaScript управлять значением в CSS ?
Например у меня стиль:
Код:
.test {
    border-bottom: 150px solid black;
}
Возможно ли вместо значения 150 вставить переменную из JavaScript?
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2017, 12:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

MC-XOBAHCK, можно скриптом на странице переопределить это свойство.
Ответить с цитированием
  #3 (permalink)  
Старый 01.09.2017, 12:49
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Спасибо за ответ. Про возможность переопределить я знаю - поиск даёт по такому ответ.

У меня полностью стиль выглядит так:
.test {
	width:0;
	height:0;
	border-bottom: 150px solid black;
	border-left: 130px solid transparent;
}

Я бы хотел скриптом изменять именно цифры (150 и 130), чтобы они изменялись согласно значениям двух переменных из JavaScripta.
Ответить с цитированием
  #4 (permalink)  
Старый 01.09.2017, 12:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

MC-XOBAHCK,
все можно
var x = 80;
var y = 90;
document.querySelector('.test').style.borderBottomWidth = x+'px';
document.querySelector('.test').style.borderLeftWidth = y+'px';
Ответить с цитированием
  #5 (permalink)  
Старый 01.09.2017, 13:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

j0hnik, он хочет менять именно в теге
<style>...</style>

Менять свойства ему видать вера не позволяет...
Ответить с цитированием
  #6 (permalink)  
Старый 01.09.2017, 13:25
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от ksa Посмотреть сообщение
j0hnik, он хочет менять именно в теге
<style>...</style>

Менять свойства ему видать вера не позволяет...
Это можно, получаем html всего тега стайл, реплейсаем регуляркой в теге .test все цифры после border-botom и left на нужные, и перезаписываем заново весь тег стайл (довольно таки ресурсоемко получится)
Ответить с цитированием
  #7 (permalink)  
Старый 01.09.2017, 13:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от j0hnik
довольно таки ресурсоемко получится
Проще взять и добавить еще один тег
<style>...</style>

С нужным текстом, а каскадность сама сделает свое дело.
Ответить с цитированием
  #8 (permalink)  
Старый 01.09.2017, 13:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Если css находится в отдельном файле, а изменения нужно внести сразу ко всем эл-там страницы, то можно сделать так:
var node=document.createElement('style');
newBorderBWidth=100,
newBorderLWidth=200;
node.innerHTML='html .text{'+
'border-bottom-width:'+newBorderBWidth+'px;'+
'border-left-width:'+newBorderLWidth+'px;'+
'}';

document.getElementsByTagName('body')[0].appendChild(node);

Не тестил.
Ответить с цитированием
  #9 (permalink)  
Старый 01.09.2017, 13:36
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от ksa Посмотреть сообщение
Проще взять и добавить еще один тег
<style>...</style>

С нужным текстом, а каскадность сама сделает свое дело.
Вариант =)
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2017, 14:12
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от MC-XOBAHCK
Подскажите пожалуйста, возможно ли при помощи JavaScript управлять значением в CSS ?
Можно. Для этого нужно правильно добраться до прототипа стилей.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .test {
      width:0;
      height:0;
      border-bottom: 150px solid black;
      border-left: 130px solid transparent;
    }
  </style>

  <script>
    (function(options) {
      var style = document.styleSheets[0].rules[0].style;

      for (var prop in options) {
        style.setProperty(prop, options[prop]);
      }
      
    })({
      'border-bottom-width': '400px', 
      'border-left-width': '500px'
    });
  </script>

</head>
<body>
  <p class="test"></p>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить произвольную страницу в браузере и обработать через JavaScript xintrea AJAX и COMET 3 09.07.2015 05:32
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Не получается загрузить баннер в раздел DIV методами Javascript через iframe ((( autobuh Общие вопросы Javascript 3 24.07.2009 19:24
Обращение к именам, полученным через Javascript baal1988 Events/DOM/Window 1 31.08.2008 15:08
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31