당신은 당신의 자신의 .filter() 함수를 사용하여 예를 들어, 작업을 수행 할 수 있습니다
var st = $('div').scrollTop(),
sh = $('div').height(),
sb = st + sh - 1;
$('p').css({
background: '#ccc'
});
$('p').filter(function() {
var $this = $(this),
h = $this.height(),
t = $this.position().top,
b = t + h - 1;
return (t >= st && b <= sb);
}).css({
background: 'red'
});
참조 DEMO : 그것은 눈에 보이는 단락 빨간색하게 http://jsfiddle.net/qnuxs/3/
5 초마다. 5 초 동안 스크롤하여 나머지 단락이 빨간색이 아님을 볼 수 있습니다.
또 다른 DEMO : 스크롤하면서 http://jsfiddle.net/qnuxs/4/
이 버전은 색상을 업데이트합니다.
계산이 잘못되어 픽셀이 약간 떨어져 있지만 시작하기에 충분해야합니다. div에 .innerHeight()를 사용하거나 다른 것을 바꿀 필요가있을 것입니다. 그러나 이것은 생각입니다 : 보이는 부분의 위와 아래를 계산하기 위해 스크롤 위치와 div 높이를 얻고, 그 값을 상단과 하단 좌표 (상대 div로 이동)하고 올바른 범위 내의 필터 만 선택하도록하십시오.
http://jsfiddle.net/qnuxs/5/
편집 :
출처
2011-03-13 05:00:52
rsp
모든 경우에 보이는 두 가지 요소는 아닙니다. 텍스트 크기가 엉망이라면? – BoltClock
@bolt 전적으로보기에있는 p를 선택하고 싶습니다. 아무 것도보기에 없다면 selector는 아무 것도 반환하지 않습니다. – Pinkie