Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 01.08.2018, 16:51
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

Я если честно запутался) Подскажите, как переправить чтобы инпуты срабатывали? п.с. Попробую сделать с просмотром)) Секунду)
Ответить с цитированием
  #22 (permalink)  
Старый 01.08.2018, 16:59
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
      * {
        box-sizing: border-box;
        padding: 0;
        margin: 0;
      }

      ul li {
        list-style: none;
        display: inline-block;
      }

      .back_style {
        font-size: 16px;
      }

      #back {
        width: 267px;
        height: 267px;
        background-color: rgb(0, 0, 0);
        display: flex;
        position: relative;
      }

      .d-flex {
        display: flex;
        margin-bottom: 1rem;
      }

      .space-around {
        justify-content: space-around;
      }

      .flex-column {
        flex-direction: column;
      }

    </style>

    <body>

      <div class='d-flex'>
        <p>background-image:</p>
        <ul>
          <li>url(<input type='text' id='bgImage' value="https://javascript.ru/cat/list/donkey.gif">);</li>
        </ul>
      </div>

      <div class='d-flex space-around'>
        <div class='mr-2'>
          <h5>background-repeat:</h5>
          <ul class='d-flex flex-column'>
            <li><input type='radio' name='repeat' id='norep' checked><label for='norep'>no-repeat</label></li>
            <li><input type='radio' name='repeat' id='repXY'><label for='repXY'>repeat</label></li>
            <li><input type='radio' name='repeat' id='repX'><label for='repX'>repeat-x</label></li>
            <li><input type='radio' name='repeat' id='repY'><label for='repY'>repeat-y</label></li>
          </ul>
        </div>
        <div class='mx-2'>
          <h5>background-size:</h5>
          <ul class='d-flex flex-column'>
            <li><label id='bnoradio'><input type='number' id='sizeIn' value='150' name='size' class='adstl bsize'> px</label></li>
            <li class='bsckeck'><input type='checkbox' id='sizeOne' name='size'><label for='sizeOne'>cover</label></li>
            <li class='bsckeck'><input type='checkbox' id='sizeTwo' name='size'><label for='sizeTwo'>contain</label></li>
          </ul>
        </div>
        <div class='ml-2'>
          <h5>background-position:</h5>
          <ul class='d-flex flex-column'>
            <li>Left: <label><input id='posX' type='number' min='0' max='100' value='50' class='adstl bsize'> %</label></li>
            <li>Top: <label><input id='posY' type='number' min='0' max='100' value='70' class='adstl bsize'> %</label></li>
          </ul>
        </div>
      </div>

      <div id='back'></div>

      <script>
        var back = document.querySelector("#back"),
          x = document.querySelector("#posX"),
          y = document.querySelector('#posY'),
          so = document.querySelector('#sizeOne'),
          st = document.querySelector('#sizeTwo'),
          si = document.querySelector('#sizeIn');
        (style = () => {
          back.style.background = `url(${document.querySelector("#bgImage").value}) black ${document.querySelector('[name="repeat"]:checked').parentNode.textContent} ${x.value}% ${y.value}%`;
          back.style.backgroundSize = so.checked ? 'cover' : st.checked ? 'contain' : si.value + 'px';
        })();
        document.querySelectorAll('input').forEach(el => el.oninput = style);

      </script>
    </body>
  </head>

</html>


Получилось))
Я слегка подкорректировал, в принципе и так нормально, но такие тонкости не все поймут, психанут и закроют страничку)

Последний раз редактировалось madeas, 01.08.2018 в 17:24.
Ответить с цитированием
  #23 (permalink)  
Старый 01.08.2018, 17:28
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

madeas,
Что-то я в результате не понял, почему у вас раньше не работало?
Ответить с цитированием
  #24 (permalink)  
Старый 01.08.2018, 17:37
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

Dilettante_Pro,
не работают только радио и чеки. Вернее работают, но после изменений в других полях. Я так понял, что это браузер так себя ведет, хз почему. Так что оставлю пока как есть, может со временем приду к нужному решению.
Ответить с цитированием
  #25 (permalink)  
Старый 01.08.2018, 17:48
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

madeas,
а смотрели последнюю версию пост 12?
Работают радио?
Можно также с использованием варианта Nexus
Ответить с цитированием
  #26 (permalink)  
Старый 01.08.2018, 17:51
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

Dilettante_Pro,
пробовал. это браузер. на телефоне в хроме норм, в других браузерах тоже по разному, но работают.
Ответить с цитированием
  #27 (permalink)  
Старый 01.08.2018, 18:42
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Попробуйте вот этот вариант back.style.background
back.style.background = 'url(' + document.querySelector("#bgImage").value+') black '+ document.querySelector('[name="repeat"]:checked').parentNode.textContent +' '+x.value+'% '+y.value+'%';
Ответить с цитированием
  #28 (permalink)  
Старый 01.08.2018, 19:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Dilettante_Pro, я так и начал с ', но потом запутался стер и поставил ` они удобней =)
Ответить с цитированием
  #29 (permalink)  
Старый 02.08.2018, 09:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

j0hnik,
Да я уже всячески с бубнами танцую - у ТС что-то странное...
Стоит посмотреть в консоли насчет ошибок и назначения обработчиков

ЗЫ:
Сообщение от j0hnik
и поставил ` они удобней
в IE Edge выдает ошибку неправильный символ

Последний раз редактировалось Dilettante_Pro, 02.08.2018 в 09:54.
Ответить с цитированием
  #30 (permalink)  
Старый 02.08.2018, 09:53
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

Dilettante_Pro,
так это же тоже самое фактически) не помогает. Это всетаки хромиум убонтовский так работает. Жаль что нельзя оставить 2-3 браузера с одинаковой поддержкой, а остальные заблокировать нафиг))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арканоид - побитовые операции (замена на условия) Eadweard Events/DOM/Window 8 14.03.2016 16:12
Помогите с рандомными значениями злобная_пипа Элементы интерфейса 6 02.10.2015 20:11
Arcanoid движок SpiriKoN Общие вопросы Javascript 2 24.10.2014 15:44
Кнопка с выпадом текста acquaviva Элементы интерфейса 7 09.07.2013 02:14
Оцените, пожалуйста код вёрстки OlegALL Ваши сайты и скрипты 18 26.07.2011 09:35