Плавная прокрутка для JavaScript Поиск на странице - PullRequest
0 голосов
/ 19 октября 2018

Для поиска текста на больших веб-страницах я нашел скрипт «JavaScript Find-on-page», и он реализован на моем сайте, и он работает просто отлично.Но чтобы он соответствовал эффектам плавной прокрутки, я бы хотел, чтобы он плавно перемещался к результату поиска, а не мгновенно переходил к выбранной находке.Я попытался настроить существующий скрипт, но я не знаю, как правильно добавить анимацию или прокрутку к этому коду.Любая идея?Как бы вы решили эту проблему?

var TRange = null;

function findString(str) {
if (parseInt(navigator.appVersion) < 4) return;
var strFound;
if (window.find) {
    // CODE FOR BROWSERS THAT SUPPORT window.find
    strFound = self.find(str);
    if (strFound && self.getSelection && !self.getSelection().anchorNode)     {
        strFound = self.find(str)
    }
    if (!strFound) {
        strFound = self.find(str, 0, 1)
        while (self.find(str, 0, 1)) continue
    }
} else if (navigator.appName.indexOf("Microsoft") != -1) {
    // EXPLORER-SPECIFIC CODE        
    if (TRange != null) {
        TRange.collapse(false)
        strFound = TRange.findText(str)
        if (strFound) TRange.select()
    }
    if (TRange == null || strFound == 0) {
        TRange = self.document.body.createTextRange()
        strFound = TRange.findText(str)
        if (strFound) TRange.select()
    }
} else if (navigator.appName == "Opera") {
    alert("Opera browsers not supported, sorry...")
    return;
}
if (!strFound) alert("String '" + str + "' not found!")
    return;
};

document.getElementById('f1').onsubmit = function() {
findString(this.t1.value);
return false;
};

Существует сценарий скрипта, который я нашел:

https://jsfiddle.net/samliew/xhYZb/

...