테스트 사이트 - 개발 중인 베타 버전입니다

움직이는 퀵메뉴 하단에 닿기 전에 멈추는 방법이 있을까요?

· 11년 전 · 1829 · 3

초보 코더입니다.^^;;

사이트 왼쪽에 위치 할 퀵메뉴를 코딩해야 합니다.

하단으로 스크롤시 퀵메뉴도 같이 따라서 움직이는 소스를 아래와 같이 찾았습니다.

 

내용 중 빨간색 부분은 페이지 상단에서 아래로 260px정도 마우스 스크롤 하며 내렸을때부터 퀵메뉴를 움직이라는 명령인거 같은데,

그럼 반대로 퀵메뉴가 사이트 하단에 닿기 전에 일정 위치에서 멈추게하는 방법이 있을까요?

고수님들의 조언 부탁드립니다.

 

 

$(function(){
 });
 if($(this).scrollTop() > 260){
 $("#floating_sub2").css({ "position": "fixed", "top": "20px" });
 }else{
 $("#floating_sub2").css({ "position": "absolute", "top": "280px" });
 }
 });
 });​

 

 

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

퀵메뉴가 하단에 닿기 전이라고 하면 퀵메뉴 높이를 알아야 할것 같은데요.
그래야 언제 멈춰야 하는지 알수 있을것 같은데요. ㅎㅎ
사이트를 보여주셔야 할것 같은데요. ㅎ
위 jQuery 는 문서 최상단에서 260px 이상 간격이 벌어지면 positon: fixed 가 적용되고 (위 마진 20px 도 잡고: 그러니까 결국 280px), 아니면 position: absolute 으로 잡히게 되어 있습니다. 280px 만큼의 아래로 간격이 떨어진 자리에.

그래서 항상 저 메뉴가 사용자 관점에서 보면 상단에서 280px 내려온 자리에서 보이게 되어 있네요. 같이 따라다닌다는게 무슨뜻인지 정확히 이해가 안되서 코드보고 무슨뜻인지 이해를 한. ㅎㅎㅎ

따라다니는 메뉴가 아니라, 고정 메뉴라고 하시는게 맞을 것 같은데... 그리고 저 코드만 봐서는 그냥 고정된 메뉴인데요? 스크롤 위치에 상관없이 항상 그 자리에 머무르는.... 그래서 저걸 왜 jQuery 로 작성했는지 조차 이해하기가 어렵네요. 그냥 css 만으로도 같은 효과를 줄수 있는건데...

질문에 대한 답변: 스크롤이 바닥에 가까워지면 바닥과 거리계산하셔서 고정된 position 의 element 를 position: relative 로 바꿔주세요.

jQuery 는 scrollTop 은 있는데, scroll바닥 은 없습니다. 그래서

if($(this).scroll바닥() < 100){ 이런식으로 작성하실 수 없고,

var 바닥 = $(window).scrollTop() + $(window).height(); 이런식으로 바닥 거리를 계산하셔서 하시면 됩니다.

scrollBottom, 훔.. jQuery 에 이게 있으면 참 좋을텐데, 이상하게 없더라구요.
맞아요...jquery가 있으면 좋을텐데요.. 친절한 답변 감사드립니다. 일러주신 내용 대로 함 적용해보겠습니다.^^

게시글 목록

번호 제목
27980
7164
31729
31726
31725
31720
31711
7159
27974
19734
19730
19729
27969
7142
19728
19725
7130
19722
19719
7124
19718
19717
19716
19715
7122
30959
19714
31710
31709
19713
7117
19712
7111
31708
31707
19710
31706
31705
31704
19709
19707
31703
19706
31702
19705
31701
19704
31700
31699
31698
7107
19703
31697
31696
19702
19701
31695
27965
31694
19700
31693
19699
31692
31691
19698
19697
19696
19694
19693
19692
19691
19690
19689
19688
19687
7105
30955
7100
19681
7097
19678
7089
7086
7084
7082
19677
30953
7080
7077
7071
7070
7066
19676
19674
27961
7063
7061
19669
7060
20842