1

한 페이지 호출 스타일 페이지가 있는데,이 페이지에서는 상단 탐색 메뉴가 동일한 페이지 내의 앵커에 부드러운 스크롤 효과로 연결됩니다.여러 페이지의 부드러운 스크롤

문제는 같은 탐색 조각이 다른 내부 페이지에 사용되는, 그래서 나는 알고 싶어 : 나는 한 호출기에가는 조건을 만들려면 어떻게해야합니까

을 현재 페이지가 아닌 경우 -휴대용 소형 무선 호출기.

이것은 내가 지금까지 가지고있는 것입니다. 코드를 읽으면 내가 성취하고자하는 것을 더 쉽게 이해할 수 있습니다.

<ul id="main_menu"> 
<li><a href="#start">Start</a></li> 
<li><a href="#overview">Overview</a></li> 
<li><a href="#gift">Make a Gift</a></li> 
<li><a href="#activities">Activities</a></li> 
<li><a href="#resources">Resources</a></li> 
</ul> 

을 sample.com/start 내 홈 페이지에서 잘 작동하지만 난에서 나는 만약 내가 메인 메뉴 링크의 "리소스"를 클릭하면, 이제 sample.com/overview 가정 해 봅시다 sample.com/overview#resources 대신 sample.com/start#resources로 가져 가야합니다.

아이디어가 있으십니까?

+1

은 그냥 항상 전체 URL에 넣어. 그럴 필요가 없다면 페이지를 바꿀 수 없습니다. –

+0

또는 href –

답변

0

시작 페이지에서 코드를 그대로 사용하고 다른 페이지에서는 #resources 대신 URL에 start#resources을 입력하십시오.

+0

에서'../st start # resources'를 넣을 수 있습니다. 그러나 문제는 다른 페이지에서 해당 메뉴를 변경할 수 없다는 것입니다. 메뉴 코드는 페이지 전체에서 동일해야합니다. – user3389286

+0

시작 페이지에 있는지 여부를 확인하는 서버 측 코드에서 if를 사용할 수 있습니다. 그렇다면 질문에 표시된 코드를 사용합니다. 그렇지 않으면 내 대답에 제안 된 코드를 사용합니다. 모든 페이지에서 동일한 메뉴를 사용하는 것이 일반적이며 ifn에서는 약간의 뉘앙스가 처리됩니다. 내 대답은 재사용 가능한 템플릿을 만들 때 내 일반적인 접근 방식 인 조건부를 사용하라는 제안이었습니다. –

0
<li><a href=" 
       <?php if(!strpos($_SERVER['SCRIPT_NAME'], 'start.php')): ?> 
        start.php 
       <?php endif;?> 
       #start">Start</a> 
    </li> 
    <li><a href=" 
       <?php if(!strpos($_SERVER['SCRIPT_NAME'], 'start.php')): ?> 
        start.php 
       <?php endif;?> 
       #overview">Overview</a> 
    </li> 

    <!-- etc.. --> 

이렇게하면 현재 페이지가 start.php인지 확인합니다. 그렇지 않은 경우 #anchor 앞에 을 href 속성에 추가하십시오.

나는 무엇이 진행되고 있는지 이해하기 쉽도록 이것을 들여 썼지 만, 실제로는 공백이 결과 URL을 엉망으로 만들기 때문에 href 속성 안의 들여 쓰기를 꺼내야합니다. %20 s.

관련 질문 : 또한

If index.php, show "this", if not, show "this"

How can I echo HTML in PHP?

:

http://php.net/manual/en/language.basic-syntax.phpmode.php