2017-12-15 24 views
0

임 템플릿 또는 예를 들어 다음과 같은 웹 사이트를 만드는 방법을 가르치는 장소를 찾고 기본적으로 동일하게 유지되지만 다소 스크롤하여 내용이 변경 될 수 있습니다. 또는 링크를 클릭하면 내용이 변경됩니다. 배경은 중립적이다.스크롤 웹 사이트는

이 질문이 유효한 질문입니다. 나는 자신의 포트폴리오 사이트를 설계했는데,이 효과를 얻으려면 코드를 호출하는 방법을 배울 수있다. 메인 페이지에는 오른쪽에 링크가있는 콘텐츠가 있습니다. 스크롤하거나 링크를 클릭하면 콘텐츠가 새 콘텐츠로 전환됩니다. 배경은 정지 상태로 유지됩니다.

희망이 맞는 것! 감사합니다

+0

당신이 시도 무엇의 MCV 예를 제공하십시오. 자세한 내용은 https://stackoverflow.com/help/mcve –

+0

을 참조하십시오. 실제로 유효한 질문은 아니지만 비슷한 관심사가 있으며 지금까지 DevTips 채널의 시차 가이드 (https://www.youtube.com)를 발견했습니다./watch? v = STwoa-9jxi0 & list = PLqGj3iMvMa4IyCbhul-PdeiDqmh4ooJzk 유용한 라이브러리 : greensock 및 scrollmagic (Youtube ihatetomatoes) 및 https://www.youtube.com/watch?v에 따라 onscrool 대신 requestanimationframe을 사용하기위한 지침 = O39OEPC20GM <- 기타 최적화 기술. 행운을 빕니다! – sashaikevich

답변

1

내가 제대로 귀하의 질문에 후 내가 사용하는 한 가지 방법은 서로의 상단에 position: absolute와 div의 스택 다음 단지 요소가 현재 볼 수있는 표시됩니다 활성 클래스를 전환하는 것입니다이 클래스 것 이해한다면 z-index: 100 또는 1000 또는 원하는 모든 숫자가 있어야하지만 스택 된 요소 수보다 높아야합니다. HTML에서는 페이지를로드 한 후에 표시 될 요소에 활성 클래스를 추가합니다. 그런 다음 JS를 사용하여 활성 클래스의 요소를 변경합니다. JS에서 나는 사용

jQuery를 : https://jquery.com/download/
jQuery를 마우스 휠 플러그인 : https://github.com/jquery/jquery-mousewheel

HTML :

<div class="container"> 
    <div class="vertically-stacked active"> //first visible bannner 
     <h1>Hello</h1> 
    </div> 
    <div class="vertically-stacked"> //visible only if class active is added 
     <h1>World</h1> 
    </div> 
</div> 

당신은 수직 스택 요소의 무한한 수를 가질 수있다.

CSS :

.container //container of vertically stacked elements 
{ 
    position: relative //or absolute but not static 
} 

.vertically-stacked 
{ 
    left: 0; 
    opacity: 0; 
    position: absolute; 
    top: 0; 
    transition: all .25s; //time which takes to switch the active element 
    -moz-transition: all .25s; 
    -o-transition: all .25s; 
    -webkit-transition: all .25s; 
} 

.vertically-stacked.active 
{ 
    opacity: 1; 
    z-index: 100; 
} 

JS :

$(document).on('mousewheel', function (e) 
{ 
    var $verticallyStacked = $('.vertically-stacked'), 
     oldActive = $verticallyStacked.index($('.vertically-stacked.active')), 
     newActive; 

    $verticallyStacked.eq(oldActive).removeClass('active'); 
    if (e.deltaY < 0) //scroll down 
    {  
     newActive = oldActive + 1; 
    } 
    else //scroll up 
    { 
     newActive = oldActive - 1; 
    } 
    $verticallyStacked.eq(newActive).addClass('active'); 
}); 
+0

각 div는 어떻게 설정됩니까? 이것과 비슷한가? Ive는 꽤 오래 전에 한 번만 활발한 수업을했습니다. https://jsfiddle.net/ebmanfcL/ –

+0

어쩌면 내가 명확하지 않아서 대답을 100 % 명확하게 편집했을 수도 있습니다. JS에서는 클래스를 세로로 겹쳐서 세미콜론을 줄 바꿈으로 변경했습니다. var $ verticalStacked = $ ('. 세로로 쌓인')을 쉼표로 변경했습니다. 편집 중입니다. JSFiddle : https://jsfiddle.net/ebmanfcL/1/ PS : jQuery 마우스 휠 플러그인이 메인에 직접있을 필요는 없습니다.js 파일을 JSFiddle에 포함시키는 방법은 JSFiddle에서 플러그인을 포함하는 유일한 방법 이었기 때문에 거기에 추가했습니다. –

+0

감사합니다. 이 코드를 내 코드에 추가하려고하지만 스크립트를 복사 할 때 작동하지 않습니다. 나는 과 그 자신의 js 파일에 퍼팅을 시도했다. 내가 에 넣는다면 html 또는 본문에 있어야합니까? –