2013-01-08 51 views
1

我試圖讓我的瀏覽器窗口向下滾動到點擊頂部的div。唯一的問題是一切工作,但是,這個窗口應該向下滾動到div點擊頂部...jQuery,點擊滾動窗口到div頂部

到目前爲止,我有:

$('.work-showcase').click(function(){ 
    $('.work-showcase').animate({height:'135px'}, 500); 
    $(this).animate({height:'400px'}, 500); 
    $(window).scrollTop; 
}); 

我做了一個的jsfiddle給你看我的意思是...... http://jsfiddle.net/Jq4Vw/

+2

您期待與$(window).scrollTop發生什麼? –

+0

兩次動畫相同的元素???????? – Jai

+0

@Alex'$(window).scrollTop()' –

回答

1

我認爲你正在努力實現這一點:http://jsfiddle.net/Jq4Vw/7/

$('.work-showcase').click(function(){ 
    $('.work-showcase').animate({height:'135px'}, 500); 
    $(this).animate({height:'400px'}, 500).promise().done(function(){ 
     $('html,body').animate({scrollTop: $(this).offset().top},500); 
     $(this).addClass('current').unbind('click'); // just add this line 
    }); 
}); 
+0

謝謝@Jai,一旦動畫完成,是有一種方法可以在單擊同一個div時停止函數重新分配嗎? – Liam

+0

'if($(window).scrollTop()== 0){return false; }'@Liam –

+0

這似乎不工作@AspiringAqib – Liam

8

這是你如何,只要滾動到div的頂部,不刷爆窗外:

$('.work-showcase').click(function(){ 

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

我ü nsure你試圖達到之前滾動

見這裏jsFiddle

0
$('.work-showcase').click(function(){ 
    window.location = "#top"; 
}); 

確保頂部ID是存在的。

<div id="top"> 
I am at the top of the document. 
</div> 

Working Fiddle

+0

window.location不是一個方法,而是一個屬性。順便說一句,我看不出這是怎麼回事 –

+1

這是什麼:D – Sahal

+0

@roasted他正在重定向到其他頁面:D。讓用戶在點擊時看不到任何東西。每個人都在回答,所以他也回答了一個。 – Sahal

1

試試這個:

$('.work-showcase').click(function(){ 
    $('.work-showcase').animate({height:'135px'}, 500); 
    $(this).animate({height:'400px'}, 500); 
    $("html, body").animate({ scrollTop: $(this).offset().top }, 500); 
}); 
1

看到這個:http://jsfiddle.net/Jq4Vw/4/

$('.work-showcase').click(function(){ 
    $('.work-showcase').animate({height:'135px'}, 500); 
    $(this).animate({height:'400px'}, 500,function() { 
    $("html, body").animate({ scrollTop: $(this).offset().top }); 
    }); 
});