Комментарий многое прояснил :-D С вашим новым вкладом может быть полезным.Здесь мы используем некоторые хитрости, чтобы добиться цели.Обратите внимание:
- чистый JS, без jQuery (но это будет еще проще с jQuery, так что это ваш вызов);
- посмотрите, как получается цель события, этодля максимальной кросс-совместимости браузера - без этого вы оставите некоторые браузеры позади;
- необходим фильтр для
"span1|span2|span3"
, потому что пользователь может очень хорошо щелкнуть один пиксель от фактического диапазона ; - как вычисляется и сохраняется логическое частичное для последующего использования;
- известен
id
диапазона; - обработчик событий присоединен к
div.container
, а не промежутки (используется всплывающее окно событий); - использование CSS
overflow-y: scroll
для включения только вертикальной полосы прокрутки; - внешняя
div
(container
) можетбудь целым окном ... или нет!
Я надеюсь, что это вдохновит вас на то, как это сделать в вашем случае, я думаю, вы не можете использовать этот код напрямую, вам придется выбирать извыше список того, что вам нужно ...
document.getElementById("container").onclick = (ev) => {
var container, target, crect, trect, partial;
ev = ev || window.event;
target = ev.target || ev.srcElement;
if ("span1|span2|span3".indexOf(target.id) !== -1) // only if a known element was actually clicked!
{
container = document.getElementById("container");
crect = container.getBoundingClientRect();
trect = target.getBoundingClientRect();
partial = trect.top < crect.top || trect.bottom > crect.bottom;
document.getElementById("status").innerText =
"target: " + target.id + " partial: " + partial;
}
};
STATUS
Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток.Это первый промежуток. Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток.Это второй промежуток. Это третий промежуток.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий пролёт.Это третий диапазон.