使用next和prev按钮浏览div

时间:2014-05-15 11:28:53

标签: jquery

我有一个div,它包含大文本数据。如果我在该文档中搜索一些文本,我使用以下代码来浏览div。 offset.top()返回正确的值,最多为a 特别的一点,但在那之后它返回错误的值,所以我的卷轴正在上升..

这是我的代码

    var lstEl = null;
    var cntr = -1;

    $('#btnNext').click(function() {
       if (lstEl === null) {
            lstEl = $('#description').find('span.highlight');
            if (!lstEl || lstEl.length === 0) {
                lstEl = null;
                return;
            }
        }
        if (cntr < lstEl.length - 1) {
            cntr++;
            if (cntr > 0) {
                $(lstEl[0]).removeClass('current');
            }
            var elm = lstEl[cntr];
            $(elm).addClass('current');
        } else
            alert("End of search reached!");

        //e.preventDefault();
        scrollToElement($(elm), 1000,-150);
    });

    $('#btnPrev').click(function() {
       if (lstEl === null) {
            lstEl = $('#description').find('span.highlight');
            if (!lstEl || lstEl.length === 0) {
                lstEl = null;
                return;
            }
        }
        if (cntr > 0) {
            cntr--;
            if (cntr < lstEl.length) {
                $(lstEl[cntr + 1]).removeClass('current');
            }
            var elm = lstEl[cntr];
            $(elm).addClass('current');
        } else
            alert("Begining of search!");       

        e.preventDefault();
        scrollToElement($(elm), 1000,-150);
    });
function scrollToElement(selector, time, verticalOffset) {
        time = typeof (time) != 'undefined' ? time : 500;
        verticalOffset = typeof (verticalOffset) != 'undefined' ? verticalOffset : 0;
        element = $(selector);
        offset = element.offset();
        alert(offset.top);
        offsetTop = offset.top + verticalOffset;

        $("#divDocument").animate({
            scrollTop: offsetTop
        }, time);
    }

有什么想法吗?

0 个答案:

没有答案