Как сделать прокрутку к эл-ту без мыши?



  • Кто-нибудь знает как сделать плавную прокрутку к эл-ту без мыши и без резкого скачка (плавную)?

    Двигать мышь над элементом и двигать мышь и кликнуть по эл-ту - делают плавную прокрутку, но с мышью.
    Прокрутка к эл-ту - делает прокрутку без мыши, но не плавную.

    0_1563542536356_acts.png



  • @agility said in Как сделать прокрутку к эл-ту без мыши?:

    Кто-нибудь знает как сделать плавную прокрутку к эл-ту без мыши и без резкого скачка (плавную)?

    Двигать мышь над элементом и двигать мышь и кликнуть по эл-ту - делают плавную прокрутку, но с мышью.
    Прокрутка к эл-ту - делает прокрутку без мыши, но не плавную.

    0_1563542536356_acts.png

    Угомонись уже с этим мобильным отпечатком.



  • @fox, как эффективнее всего решить вопрос, подскажешь?



  • @agility Поддерживаю этот Вопрос :)
    И вообще как что бы кликал но курсора не было Ведь смысл в Моб отпечатках тогда, когда там курсор всё время ?



  • @agility said in Как сделать прокрутку к эл-ту без мыши?:

    @fox, как эффективнее всего решить вопрос, подскажешь?

    Нужен такой эффект?


    Такой эффект можно сделать через действие "Выполнить Javascript На Элементе" с кодом:

    const animationTime = 800, framesCount = 30;
    let coordY = window.pageYOffset + self.getBoundingClientRect().top - window.innerHeight / 2;
        let scroller = setInterval(function() {
          let scrollBy = coordY / framesCount;
          if(scrollBy > window.pageYOffset - coordY && window.innerHeight + window.pageYOffset < document.body.offsetHeight) {
            window.scrollBy(0, scrollBy);
          } else {
            window.scrollTo(0, coordY);
            clearInterval(scroller);
          }
        }, animationTime / framesCount);
    

    animationTime - время анимации
    framesCount - количество кадров

    Тестовый скрипт


    @agility said in Как сделать прокрутку к эл-ту без мыши?:

    Двигать мышь над элементом и двигать мышь и кликнуть по эл-ту - делают плавную прокрутку, но с мышью.

    Можно из этих действий убрать код отвечающий за передвижение мыши:

    _SELECTOR = " \u003eCSS\u003e :nth-child(3) \u003e :nth-child(6) \u003e p";
    wait_element_visible(_SELECTOR)!
    _call(_random_point, {})!
    _if(_result().length > 0, function () { })!
    

    Тестовый скрипт



  • @super84 said in Как сделать прокрутку к эл-ту без мыши?:

    @agility Поддерживаю этот Вопрос :)
    И вообще как что бы кликал но курсора не было Ведь смысл в Моб отпечатках тогда, когда там курсор всё время ?

    Для клика без мыши необходимы тач-события, пока CEF их не поддерживает.

    @support планирует перейти на новый движок, где это готово из коробки:

    Полноценная поддержка мобильных отпечатков будет после перехода на новый движок.
    


  • @fox Важный вопрос появился
    Решение выше - это вызов js события window.scrollTo()
    Не знаешь, остальные встроенные действия BAS'а типа "Двигать мышь над элементом" - они тоже вызываются через javascript функцию (что бы прокрутить скролл к эл-ту), или же через функцию движка Chromium?
    Вопрос к тому, что если антифрод сайтов в своих javascript кодах детектит (яндекс метрика), что браузер вызвал функцию window.scrollTo().



  • @agility said in Как сделать прокрутку к эл-ту без мыши?:

    @fox Важный вопрос появился
    Решение выше - это вызов js события window.scrollTo()
    Не знаешь, остальные встроенные действия BAS'а типа "Двигать мышь над элементом" - они тоже вызываются через javascript функцию (что бы прокрутить скролл к эл-ту), или же через функцию движка Chromium?
    Вопрос к тому, что если антифрод сайтов в своих javascript кодах детектит (яндекс метрика), что браузер вызвал функцию window.scrollTo().

    Если в BAS включена эмуляция мыши или клавиатуры, то скрол происходит соответсвено с их эмуляцией. Без эмуляции прокрутка происходит через js.



  • @fox А это действие js или эмуляция клавиатуры/мыши? При его вызове скролл мгновенно перемещается к эл-ту.

    0_1564852382356_prok_1.png
    0_1564852422239_prok_2.png



  • @agility said in Как сделать прокрутку к эл-ту без мыши?:

    @fox А это действие js или эмуляция клавиатуры/мыши? При его вызове скролл мгновенно перемещается к эл-ту.

    С эмуляцией, в старых версиях использовался js.



  • @fox Понял
    Реально тогда сделать твое решение выше вместо window.scrollTo() - эмуляцию движка, как это действие "Прокрутка к эл-ту"?
    Решение рабочее, но с точки зрения бот детекта - я могу сразу спалиться, если буду js функции браузера использовать для таких простых манипуляций на странице.



  • @agility said in Как сделать прокрутку к эл-ту без мыши?:

    @fox Понял
    Реально тогда сделать твое решение выше вместо window.scrollTo() - эмуляцию движка, как это действие "Прокрутка к эл-ту"?
    Решение рабочее, но с точки зрения бот детекта - я могу сразу спалиться, если буду js функции браузера использовать для таких простых манипуляций на странице.

    Я бы в таком случае посоветовал использовать "ввод текста" с использованием клавиш вверх и вниз.


Log in to reply
 

  • 15
  • 5
  • 3
  • 11
  • 3
  • 9
  • 1
  • 1