【发布时间】:2021-09-25 09:17:36
【问题描述】:
我有一个 SVG 地图和一个列表,如果您单击地图上的地块编号,它会在列表中突出显示。
由于项目很多,当您单击地图上的地块编号时,它应该将右侧的列表滚动到正确的项目。
但是,当您开始点击所有不同的数字时,您会看到滚动中断并且不再滚动到正确的数字。
JS代码如下:
$('.plot__list__item').click(function () {
$(this).toggleClass('selected');
$(this).siblings('li').removeClass('selected');
$('#' + $(this).data('map')).toggleClass('selected');
$('#' + $(this).data('map')).siblings('g').removeClass('selected');
});
$('.plot__map__item').click(function () {
$(this).toggleClass('selected');
$(this).siblings('g').removeClass('selected');
$('#' + $(this).data('list')).toggleClass('selected');
$('#' + $(this).data('list')).siblings('li').removeClass('selected');
});
$('.plot__map__item').click(function () {
let id = $(this).data('list');
let scrollPos = $('#' + id).position().top;
$('.plot__list').animate({
scrollTop: scrollPos
}, 400);
});
【问题讨论】:
-
您应该考虑您当前的滚动位置。如果您在单击任何数字之前滚动到顶部,您会看到您滚动到了正确的位置。
-
@DionisTakac 我应该如何更新代码以使其滚动到正确的位置,而不必总是滚动回列表顶部?
标签: javascript html jquery scrolltop