Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как сделать счетчик checkbox, vue3?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    <template>
      <div class="divRadio">
        <div class="divus" style="margin-top: 0px;">
          <input type="checkbox" id="name1" class="checkus" @change="schetRadio" />
          <label for="name1" class="labelus">Василенко Пётр Владимирович</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name2" class="checkus" @change="schetRadio" />
          <label for="name2" class="labelus">Ерёменко Владислав Игоревич</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name3" class="checkus" @change="schetRadio" />
          <label for="name3" class="labelus">Антонова Елена Сергеевна</label>
        </div>
      </div>
    </template>


    export default {
      data() {
        return {
          schetchik: 0,
        };
      },
      methods: {
        schetRadio() {
          this.schetchik = Array.from(document.querySelectorAll('.checkus'))
            .filter((checkbox) => checkbox.checked)
            .length;
          this.$emit('schetchik', this.schetchik);
        },
      },
    };
    Ответ написан
    Комментировать
  • Реализация всплывающего окна при наведении на элемент и закрытие окна при уводе курсора с элемента, а также с раскрывшегося окна?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const countryModalBtn = document.querySelector(".country-js");
    const countryModal = document.getElementById("countryModal");
    let timeoutId;
    
    function openDropdown() {
        clearTimeout(timeoutId);
        countryModal.classList.add("country-modal--active");
    }
    
    function closeDropdown() {
        timeoutId = setTimeout(function() {
            countryModal.classList.remove("country-modal--active");
        }, 200); 
    }
    
    countryModalBtn.addEventListener("mouseover", openDropdown);
    countryModalBtn.addEventListener("mouseout", closeDropdown);
    countryModal.addEventListener("mouseout", closeDropdown);
    Ответ написан
    Комментировать
  • Как перенести строку в самом теге p не применяя других тегов если \n и т.п не работает?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    .break-line {
            white-space: pre-line;
        }
    
    <p class="break-line">
        Ваш текст с переносом строки
        внутри тега p.
    </p>


    $string = trim($string);
    Ответ написан
    Комментировать
  • Как поменять цвет svg в этом случае?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Для того чтобы применить переменную props.color к svg, вам нужно использовать атрибут style вместо fill.
    import svgImg from "../../assets/react.svg";
    
    export default function AnimalItem({ color, name, speed }: Animal) {
      const props = { color, name, speed };
    
      return (
        <div>
          <div>
            <svg
              xmlns="http://www.w3.org/2000/svg"
              xmlnsXlink="http://www.w3.org/1999/xlink"
              aria-hidden="true"
              role="img"
              className="iconify iconify--logos"
              width="35.93"
              height="32"
              preserveAspectRatio="xMidYMid meet"
              viewBox="0 0 256 228"
              style={{ fill: props.color }} // Применение цвета к свойству fill
    Ответ написан
    Комментировать
  • Как задать плавное исчезновение блока в этом js коде?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    $('.header__bottom-img').on('click', function() {
        $(this).closest('.header__bottom').fadeOut(1000); // Исчезновение за 1 секунду
    });
    Ответ написан
    Комментировать
  • Как сравнить значение с диапазоном значений?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const scrollThreshold = 1; // Твоя погрешность
    
    if (popupScroll.scrollHeight - popupScroll.scrollTop <= popupScroll.clientHeight + scrollThreshold) {
      // Проскролили блок до конца
    }
    Ответ написан
    Комментировать
  • Как подключить библиотеку moment.js в проект на Laravel?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    В вашем случае, чтобы использовать библиотеку Moment.js, вы должны правильно импортировать и использовать ее в коде.

    Вместо import '../../node_modules/moment' в файле resources/js/app.js, вам следует использовать следующий импорт:

    import moment from 'moment';

    После внесения этих изменений перекомпилируйте ваш проект с помощью npm run devи проверьте, не появилась ли ошибка "moment is not defined" при использовании
    Ответ написан
    2 комментария
  • Как вывести объект который был создан через BX.create, в нужное место на странице?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    let value = 'Тут твой текст';
    let first = BX.create('SPAN', {
      text: value
    });
    
    // Получаем родительский элемент, к которому нужно добавить объект
    let parentElement = document.getElementById('parentElementId');
    
    // Добавляем объект на страницу
    BX.append(first, parentElement);
    Ответ написан
    Комментировать
  • Как сделать обновление пары JWT токенов в Nuxt 3?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Установите модуль @nuxtjs/axios, если он ещё не установлен:
    npm install @nuxtjs/axios

    Добавьте модуль @nuxtjs/axios в конфигурацию Nuxt.js, редактируя файл nuxt.config.js:

    // nuxt.config.js
    export default {
      modules: [
        '@nuxtjs/axios',
      ],
      axios: {
        // Настройки Axios
        // Здесь вы можете указать базовый URL и другие параметры
      },
    }


    В вашем коде используйте $axios, предоставляемый модулем @nuxtjs/axios:

    await this.$axios.post('http://localhost:3333/auth/refresh', null, {
      withCredentials: true,
    })

    Здесь мы использовали $axios.post для выполнения POST-запроса с указанием URL, передачей пустого тела запроса null и опцией withCredentials: true, которая позволяет передавать куки клиента.

    Теперь запрос будет отправляться с куками клиента, как при SSR, так и при клиентской навигации. Убедитесь, что серверный и клиентский код выполняется в рамках соответствующих методов или хуков, таких как asyncData, fetch, mounted, created или компонентов жизненного цикла, в зависимости от ваших потребностей.
    Ответ написан
    Комментировать
  • Как скрывать элемент по условию скролла?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const popup = document.querySelector('.popup');
    const pseudoElement = popup.querySelector('::before');
    popup.addEventListener('scroll', function() {
      if (popup.scrollHeight - popup.scrollTop === popup.clientHeight) {
        pseudoElement.style.display = 'none';
      } else {
        pseudoElement.style.display = 'block';
      }
    });
    Ответ написан
    Комментировать
  • Как запустить wpcf7mailsent только внутри попапа с определенным id?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    jQuery(document).ready(function($) {
      document.addEventListener('wpcf7mailsent', function(event) {
        var id = event.detail.contactFormId;
        var popupId = 'pamyatka-popap-<?php echo get_row_index(); ?>';
    
        // Проверяем, находимся ли мы внутри попапа с определенным ID
        if ($(event.target).closest('#' + popupId).length) {
          if (id == 19124) {
            window.open("<?php echo esc_url($m_dobavit_knopku['url']); ?>", '_blank');
          }
        }
      }, false);
    });
    Ответ написан
    2 комментария
  • Какая переменная в script.js компонента catalog.element отвечает за свойства sku?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    В компоненте catalog.element переменная, отвечающая за свойства SKU, называется this.offersProps
    Вы можете получить доступ к свойствам выбранного торгового предложения так:
    // Получаем выбранное торговое предложение
    const selectedOffer = this.offers[this.offerNum];
    
    // Получаем свойства выбранного торгового предложения
    const selectedOfferProps = selectedOffer['PROPERTIES'];
    
    // Перебираем свойства и выводим их название и значение
    for (const propName in selectedOfferProps) {
      if (selectedOfferProps.hasOwnProperty(propName)) {
        const propValue = selectedOfferProps[propName].VALUE;
        console.log(`Название свойства: ${propName}, Значение: ${propValue}`);
      }
    }
    Ответ написан
  • Как при клике на li передать его добавочный класс родительскому диву?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const selectboxss = document.querySelector('.selectboxss');
    const liElements = document.querySelectorAll('.selectboxssmenu li');
    liElements.forEach(li => {
      li.addEventListener('click', () => {
        const additionalClass = li.classList[1];
        selectboxss.classList.remove(...selectboxss.classList);
        selectboxss.classList.add(additionalClass);
      });
    });
    Ответ написан
    Комментировать
  • Как выбрать оптимальный стейт и обработать вложенные чекбоксы?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Делал недавно подобное .Вот мой php+js.

    <div class="box">
                      <div class="head">
                         <h2 class="title">Select documents to download</h2>
                         <span class="arrow">
                            <svg xmlns="http://www.w3.org/2000/svg" width="27.269" height="15.756" viewBox="0 0 27.269 15.756">
                               <path d="M925.974,98.658l-13.2-13.2a1.5,1.5,0,1,1,2.121-2.121l11.074,11.074,11.074-11.074a1.5,1.5,0,0,1,2.121,2.121Z" transform="translate(-912.339 -82.902)" fill="#dc5d37" />
                            </svg>
                         </span>
                      </div>
                      <div class="body">
    
                         <ul class="download-list">
                            <?php
                            // Check rows exists.
                            if (have_rows('download_docs')) :
                               $cnt = 0;
                               // Loop through rows.
                               while (have_rows('download_docs')) : the_row(); ?>
                                  <?php
                                  $cnt++;
    
                                  $file = get_sub_field('doc');
                                  $filedir = get_attached_file($file['id']);
                                  $filename = get_the_title($file['id']);
                                  if ($file) : ?>
                                     <li class="item">
                                        <?php
    
                                        //$newStr = end(explode('/', $file['url']));
    
                                        ?>
                                        <input value="<?php echo $filedir; ?>" type="checkbox" class="checkdownload" id="ch<?php echo $cnt; ?>">
                                        <label for="ch<?php echo $cnt; ?>"><?php echo $filename; ?></label>
    
    
                                     </li>
                                     <!--                    <a class="cheker" href="--><?php //echo $file['url']; 
                                                                                        ?>
                                     <!--">--><?php //echo $file['filename']; 
                                              ?>
                                     <!--</a>-->
                                  <?php endif; ?>
                            <?php
                               endwhile;
    
                            // No value.
                            else :
                            // Do something...
                            endif; ?>
                         </ul>
                         <div class="btn-wrap">
                            <button onclick="getCheckedCheckBoxes()" href="#download" class="btn btn-right popup-modal">Download</button>
                         </div>
                      </div>
                   </div>


    function getCheckedCheckBoxes() {
          var checkboxes = document.getElementsByClassName('checkdownload');
          var checkboxesChecked = [];
          for (var index = 0; index < checkboxes.length; index++) {
             if (checkboxes[index].checked) {
                checkboxesChecked.push(checkboxes[index].value); //
                var sendUrls = (checkboxes[index].value); // 
                //console.log(sendUrls);
             }
          }
          return checkboxesChecked;
       }
    Ответ написан
    3 комментария
  • Как вывести инфо выбранного маркера leafleat js map в своём DIV вне поп-апа?

    gogowq
    @gogowq Автор вопроса
    Ozh domosh acha ozh
    for (const site of sites) {
                      marker = new L.marker([site.lat, site.lng], {
                            icon: greenIcon,
                         })
                       
                         .on('click', function(e) {
    
                            this.setIcon(redIcon);
    
                            document.getElementById('YOURDIV').textContent = site.address
                         })
    
                         .addTo(map);
    Ответ написан
    Комментировать
  • Не работает getByteFrequencyData для stream в safari и iOS?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Полагаю что проблема в createMediaElementSource Я проверил код ниже в Mojave,всё работает

    <button id="btn">
    Start
    </button>
    
    <div id="wrapper"></div>
    
    <br />
    <canvas id="canvas" style="background:black;width:512px;height:255px;"></canvas>


    document.getElementById("btn").addEventListener("click", function() {
    var canvas = document.getElementById('canvas');
    var canvasCtx = canvas.getContext("2d");
    var audioContext = new (window.AudioContext || window.webkitAudioContext)();
    var player = document.getElementById('audio_player');
    var analyser = audioContext.createAnalyser();
    var data = new Uint8Array(analyser.frequencyBinCount);
    
    function render() {
      analyser.getByteFrequencyData(data);
    
      canvasCtx.clearRect(0, 0, canvas.width, canvas.height);
      for (var i = 0, l = data.length; i < l; i++) {
        canvasCtx.fillStyle = "#ffffff";
        canvasCtx.fillRect(i, -(canvas.height/255) * data[i], 1, canvas.height);
      }
    
      requestAnimationFrame(render);
    }
    
    requestAnimationFrame(render);
    
    var audio = new Audio();
    audio.loop = true;
    audio.autoplay = false;
    audio.crossOrigin = "anonymous";
    
    audio.addEventListener('error', function(e) {
      console.log(e);
    });
    audio.src = "https://greggman.github.io/doodles/sounds/DOCTOR VOX - Level Up.mp3";
    //audio.play();
    audio.controls = true;
    
    document.getElementById("wrapper").append(audio);
    
    audio.addEventListener('canplay', function() {
      var audioSourceNode = audioContext.createMediaElementSource(audio);
    
      audioSourceNode.connect(analyser);
      analyser.connect(audioContext.destination);
    });
    });
    Ответ написан
    1 комментарий
  • Есть ли способ вставить видео yutube/vimeo в собственный плеер тега video?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    На этом можно запускать условные ролики с ютуба внутри плеера.
    Вот краткое пояснение по ютубу/вимео внутри тега video с помощью этого JS
    Ответ написан
    Комментировать
  • Как сделать элемент активным при загрузке страницы?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Жмёшь по табу после загрузки страницы:

    window.addEventListener('load', () => {
    document.querySelector('button.tablinks').click()  
    });
    Ответ написан
    Комментировать
  • Как защитить изображение на сайте?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Защита , будет работать только от нубов.
    Условный блок ПКМ и ватермарк. Хотя в большинстве случаев,врядли кто то будет прям уж сильно заморачиваться.С таким учётом,можно увидеть идею и перерисовать её. Хотя сомневаюсь что кто то будет это делать.С учёта что это всё выйдет аналогично по затратам,если просто оплатить логотип. Да и в целом,нужно мыслить в сторону ЦА с деньгами. Явно же сайт не будет в топ 3 гугла по вашим запросам и на сайт 95% юзеров будут переходить по прямой ссылке ,данной вами.По этому..лучше сортировать людей изначально)
    Ответ написан
    Комментировать