2014-12-15 2 views
0

У меня есть три дивы, какСкрыть текущий DIV и показать скрытые DIV с действием прокрутки

<div id="top" style="display:hide"></div> 
<div id="middle" style="display:block"></div> 
<div id="bottom" style="display:hide"></div> 

все они ведут себя, как страницы и имеющие одинаковую высоту, например 700px. Изначально должен отображаться только средний div (домашняя страница). Когда я нажимаю ссылку в среднем div, например, средний div будет скрыт, а верхний div должен отображаться, а страница должна прокручивать этот div. Аналогично, когда другая ссылка в среднем div, снова средний div должен быть скрыт, а нижний div отображается, а прокрутка на этот раз должна быть снизу.

Я использовал функцию jquery scrollTo, но прокрутка происходит после отображения div, но не в одно и то же время. Я использую код ниже по ссылке:

$('#top').css('display', 'block'); 
$('#top').ScrollTo(); 

Любая помощь?

+6

Что такое 'Дисплей: hide'? Довольно уверен, что вы имеете в виду, 'display: none;' – Ruddy

+0

да его отображение: нет. Typo :-) – vamsi

ответ

0

использование

$('body').animate({scrollTop : $('#top').offset().top},'slow'); 

изменение #top с идентификатором для вашего DIV вы хотите, чтобы перейти к нему

+0

Показывать его и прокручивать до него не работают, как ожидалось ... как я могу отобразить div и прокручивать его при одном и том же вызове? – vamsi

+0

http://stackoverflow.com/questions/3432656/scroll-to-a-div-using-jquery и просто вы можете скрыть div, используя .hide() .. например $ ('# top'). Hide() ; –

0

Demo

HTML

<div id="top" class="hide"> 
    <a href="#middle" data-target="#middle">middle page</a> 
    <a href="#bottom" data-target="#bottom">bottom page</a> 
</div> 
<div id="middle"> 
    <a href="#top" data-target="#top">top page</a> 
    <a href="#bottom" data-target="#bottom">bottom page</a> 
</div> 
<div id="bottom" class="hide"> 
    <a href="#middle" data-target="#middle">middle page</a> 
    <a href="#top" data-target="#top">top page</a> 
</div> 

CSS

.hide { 
    display:none; 
} 
#top, #middle, #bottom { 
    height:300px; 
} 
#top { 
    background:green 
} 
#bottom { 
    background:blue 
} 
#middle { 
    background:red; 
} 

JQuery

$("a").click(function() { 
    $("div").addClass("hide"); 
    $($(this).data("target")).removeClass("hide"); 
}) 
+0

Где прокрутка ??? – vamsi

+0

Я забыл .. всего лишь секунду .. – 4dgaurav

+0

Обновленная демонстрация http://jsfiddle.net/4dgaurav/44jopa77/1/ – 4dgaurav

0

Что-то вроде этого? нужно немного работы, довольно это немного

$('a').on('click',function(e){ 
 
    $('div').hide(); 
 
    var href=$(this).attr('href'); 
 
    $(href).slideDown(2000,'swing'); 
 
    
 
    
 
    });
#top{height:300px;background-color:lime;display:none;} 
 
#middle{height:300px;background-color:yellow;display:block;} 
 
#bottom{height:300px;background-color:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="top" > 
 
    <a href='#top'>Top</a> 
 
    <a href="#middle">Middle</a> 
 
    <a href="#bottom">Bottom</a> 
 
</div> 
 
<div id="middle"> 
 
    <a href='#top'>Top</a> 
 
    <a href="#middle">Middle</a> 
 
    <a href="#bottom">Bottom</a> 
 
</div> 
 
<div id="bottom" > 
 
    <a href='#top'>Top</a> 
 
    <a href="#middle">Middle</a> 
 
    <a href="#bottom">Bottom</a> 
 
</div>

Смежные вопросы