Выполнить действие после того как progress будет меньше

Рейтинг: 0Ответов: 1Опубликовано: 13.04.2023
<div class="progress">
    <div class="bar" style="width: 66.2964%; overflow: hidden;">
        <span class="progress_timer">Через 18 сек</span>
    </div>
    <!-- /.bar -->
    <span class="progress_timer">Через 18 сек</span>
</div>

Как выполнить нажатие на type="button" после того как значение будет меньше 18 или же width: 66.2964%; будет меньше 50%

Ответы

▲ 0

Как выполнить нажатие на type="button" после того как значение будет меньше 18

Могу предложить такой вариант решения...

const ob = document.querySelector('button')
ob.addEventListener('click', _ => {
  const v = `<p>Нажали кнопку ${new Date()}</p>`
  document.querySelector('#test').insertAdjacentHTML('beforeend', v)
})
const action = _ => {
  let ok = true
  return a => {
    let n = a[0].addedNodes[0]?.wholeText ?? ''
    //console.log(n)
    n = +n.match(/\d+/)
    if (ok && n < 18) {
      ok = false
      ob.click()
    }
  }
}
const observer = new MutationObserver(action());
const ot = document.querySelector('.progress_timer')
const config = {
  childList: true
}
observer.observe(ot, config);
test()
//
function test() {
  const txt =  ot.textContent
  const n = +txt.match(/\d+/)
  if (!n) {
    ot.textContent = ''
    return
  }
  ot.textContent = txt.replace(/\d+/, n - 1)
  setTimeout(test, 1000)
}
<div class="progress">
  <div class="bar" style="width: 66.2964%; overflow: hidden;">
    <span class="progress_timer">Через 22 сек</span>
  </div>
</div>
<button>Тест</button>
<div id='test'></div>