我有一个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);
}
有什么想法吗?