1
난 달성하기 위해 노력하고 무엇 :는 요소가 페이지의 상단에 도달 할 때 클래스를 추가하고 클래스를 제거
이미지의 상단 (스크롤) 창 상단에 도달- 하는 클래스에 "끈적"클래스가 추가되었습니다.
- 이제 끈적 거리는 이미지가 컨테이너 아래쪽에 도달하면 클래스가 제거되고 요소는 마지막 마지막 위치에 유지됩니다.
- 사용자가 위로 이동하면 같은 과정이 일어나고, 맨 아래부터 시작하여 맨 위로 이동합니다.
관련 jQuery를 :
- 클래스는 모든 요소에 추가
- 요소의 위치 (왼쪽/오른쪽) 변경 클래스 추가시 : I 발생할
$(".entry-thumbnail").each(function() {
var $this = $(this),
p = $this.parent(),
scrollT = $this.scrollTop(),
scrollW = $(window).scrollTop(),
scrollPT = p.scrollTop() + p.outerHeight();
if (!$this.hasClass("sticky")) {
console.log("Tada!");
$(window).scroll(function() {
if (scrollT <= scrollW) {
$this.addClass("sticky");
}
});
}
else {
$(window).scroll(function() {
if (scrollT + $this.outerHeight() >= scrollPT) {
$this.removeClass("sticky");
}
});
}
});
문제
아주 좋은 시작입니다. 꽤 잘 작동하지만 오버플로 때문에 눈에 띄지 않는 실수가 하나 있습니다. 기사에 숨겨져 있습니다. 기사 아래에 미리보기 이미지를 이동하면 첫 번째 if 문에 무언가를 추가 할 수 있습니다. 내 편집 [here] (http://jsfiddle.net/eh3sT/1/)을 참조하십시오. 아주 잘 작동하지 않는 또 다른 점은 더 스크롤 할 때 마지막 하단 위치에 미리보기 이미지를 표시하고 다시 위로 이동할 때 해당 이미지가 맨 아래 위치에서 다시 시작된다는 것입니다. 그게 분명하길 바래? –
나는 그것을 발견했다, [여기] (http://jsfiddle.net/eh3sT/2/)입니다. 어쩌면 최적화 할 수 있을까요? 나는 모른다. 어쨌든 귀하의 게시물을 적절하게 편집하십시오. 귀하의 답변을 수락하겠습니다. –
@BramVanroy 문제의 대부분을 스스로 해결했습니다. 감사합니다 :) 나는 내 대답을 업데이 트했습니다. 전체 화면 데모 http://jsfiddle.net/eh3sT/3/embedded/result/을 체크 아웃 할 수 있습니다. –