Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动至网页顶部功能_Javascript_Scroll - Fatal编程技术网

Javascript 滚动至网页顶部功能

Javascript 滚动至网页顶部功能,javascript,scroll,Javascript,Scroll,嗨,我有一个脚本,我正在使用它搜索页面上的单词,然后将它们放到页面顶部。我的问题是我有一个固定的标题,突出显示的结果在固定标题下滚动。我如何修复脚本,使其不进入顶部,而是从顶部向下300像素,以便结果显示在页面的中间并突出显示 这是我的密码: inPageSearch = function () { document.getElementsByClassName = function (cl) { var retnode, myclass, elem, classes;

嗨,我有一个脚本,我正在使用它搜索页面上的单词,然后将它们放到页面顶部。我的问题是我有一个固定的标题,突出显示的结果在固定标题下滚动。我如何修复脚本,使其不进入顶部,而是从顶部向下300像素,以便结果显示在页面的中间并突出显示

这是我的密码:

inPageSearch = function () {
    document.getElementsByClassName = function (cl) {
        var retnode, myclass, elem, classes;
        retnode = [];
        myclass = new RegExp('\\b' + cl + '\\b');
        elem = this.getElementsByTagName('*');
        for (var i = 0, ii = elem.length; i < ii; i++) {
            classes = elem[i].className;
            if (myclass.test(classes)) retnode.push(elem[i]);
        }
        return retnode;
    };
    elemTop = function (elem) {
        return elem.top || elem.pixelTop || elem.offsetTop || 0;
    };
    search = function (str) {
        nodewalk = function (node, str) {
            var re, m, s, r, frag, sp;
            for (var i = 0; i < node.length; i++) {
                if (node[i].hasChildNodes() && 'SCRIPT' !== node[i].nodeName) nodewalk(node[i].childNodes, str);
                re = new RegExp(str, 'ig');
                if (3 === node[i].nodeType) {
                    m = node[i].nodeValue.match(re);
                    s = node[i].nodeValue.split(re);
                    frag = document.createDocumentFragment();
                    if (m !== null) {
                        frag.appendChild(document.createTextNode(s[0]));
                        for (var j = 0, jj = m.length; j < jj; j++) {
                            sp = document.createElement('span');
                            sp.appendChild(document.createTextNode(m[j]));
                            sp.className = 'found';
                            frag.appendChild(sp);
                            frag.appendChild(document.createTextNode(s[j + 1]));
                        }
                        node[i].parentNode.replaceChild(frag, node[i]);
                        i += jj * 2;
                    }
                }
            }
        };
        nodewalk(document.getElementsByTagName('body')[0].childNodes, str);
    };
    clearfound = function (node) {
        var txt = node.previousSibling.nodeValue + node.firstChild.nodeValue + node.nextSibling.nodeValue;
        node.parentNode.removeChild(node.nextSibling);
        node.parentNode.removeChild(node.previousSibling);
        node.parentNode.replaceChild(document.createTextNode(txt), node);
    };
    var d, F, fld, inp, b1, b2, b3;
    d = document.createElement("div");
    d.id = 'searchbox';
    F = document.createElement("form");
    fld = document.createElement("fieldset");
    inp = document.createElement("input");
    inp.type = 'text';
    inp.id = 'search';
    fld.appendChild(inp);
    b1 = document.createElement("input");
    b1.type = 'button';
    b1.id = 'search1';
    b1.value = 'Find';
    b1.title = 'Find all and jump to first';
    fld.appendChild(b1);
    b2 = document.createElement("input");
    b2.type = 'button';
    b2.id = 'search2';
    b2.value = 'Find Next';
    b2.title = 'Jump to next found element';
    fld.appendChild(b2);
    b3 = document.createElement("input");
    b3.type = 'button';
    b3.id = 'searchx';
    b3.value = 'X';
    b3.title = 'Close in page search';
    fld.appendChild(b3);
    F.appendChild(fld);
    d.appendChild(F);
    document.getElementsByTagName('body')[0].appendChild(d);
    document.getElementById('search1').onclick = function () {
        var nodes = document.getElementsByClassName('found');
        for (var i = nodes.length - 1; i >= 0; i--) clearfound(nodes[i]);
        search(document.getElementById('search').value);
        window.scrollTo(0, elemTop(document.getElementsByClassName('found')[0]));
        return false;
    };
    document.getElementById('search2').onclick = function () {
        var nodes = document.getElementsByClassName('found');
        clearfound(nodes[0]);
        window.scrollTo(0, elemTop(document.getElementsByClassName('found')[0]));
        return false;
    };
    document.getElementById('searchx').onclick = function () {
        var nodes = document.getElementsByClassName('found');
        for (var i = nodes.length - 1; i >= 0; i--) clearfound(nodes[i]);
        document.getElementById('searchbox').style.display = 'none';
        setTimeout(function () {
            document.getElementsByTagName('body' [0].removeChild(document.getElementById('searchbox'));
            }, 5);
        };
    };

    inPageSearch();
inPageSearch=函数(){
document.getElementsByClassName=函数(cl){
变量retnode,myclass,elem,class;
retnode=[];
myclass=newregexp('\\b'+cl+'\\b');
elem=this.getElementsByTagName('*');
对于(变量i=0,ii=elem.length;i=0;i--)clearfound(nodes[i]);
搜索(document.getElementById('search').value);
scrollTo(0,elemTop(document.getElementsByClassName('found')[0]);
返回false;
};
document.getElementById('search2')。onclick=function(){
var nodes=document.getElementsByClassName('found');
clearfound(节点[0]);
scrollTo(0,elemTop(document.getElementsByClassName('found')[0]);
返回false;
};
document.getElementById('searchx')。onclick=function(){
var nodes=document.getElementsByClassName('found');
对于(var i=nodes.length-1;i>=0;i--)clearfound(nodes[i]);
document.getElementById('searchbox').style.display='none';
setTimeout(函数(){
document.getElementsByTagName('body'[0].removeChild(document.getElementById('searchbox'));
}, 5);
};
};
inPageSearch();

窗口。滚动至(0300);
将从顶部滚动页面至300px。

如果您真的需要帮助,请花时间将代码格式化为可读。您弄坏了我的hscroll键。很抱歉,这就是代码的来龙去脉,我不知道如何格式化。我将学习如何格式化。我在窗口中有两个位置。使用scrollto时,我是否只需在元素之前或之后添加300顶部部分。如您所见,有点混乱。
window.scrollTo(0,elemTop(document.getElementsByClassName('found')[0]);
类似于
window.scrollTo(0300,elemTop(document.getElementsByClassName('found')[0]);
window.scrollTo(0,elemTop(document.getElementsByClassName('found')[300]);