2014-04-03 42 views
0

我用scrolltop函數滾動到頂部點擊一個按鈕,但它不工作?點擊一個按鈕的jQuery的滾動功能

** jQuery的 ** * ***

jQuery('.scroll').click(function() 
{ 
    jQuery("html, body").animate({ scrollTop: '#fields2' }, 'slow'); 

    return false; 

    }); 

** * ** HTML代碼 ** * **

<div id="fields2"> 
     .............. 
............... 

     <input class="send_btn scroll" type="button" value="back"/> 
     </div> 
+0

嘗試'scrollTop:$('#fields2')。offset()。top' – haxxxton

回答

0

.offset()返回元件相對於所述文件的的座標,和頂部PARAM會給你在沿y軸的像素元素的距離:

jQuery('.scroll').click(function() 
{ 
    jQuery("html, body").animate({ scrollTop: $('#fields2').offset().top }, 'slow'); 

    return false; 

    }); 
1

只問自己:scrollTop是一個屬性,用於指示距文檔頂部的距離,以像素爲單位

在那裏,你問jQuery的動畫scrollTop爲「#fields2」,這是一個字符串。

所以,首先,我想你會嘗試從頂部檢索元素#fields2的距離?

這樣:$('#fields2').offset().top

jQuery('.scroll, .send_btn').click(function (e) 
{ 
e.preventDefault(); 
var dest = $('#fields2').offset().top; 
jQuery("html, body").animate({ scrollTop: dest }, 'slow'); 

// If you need to submit a form, with an input like : <input type="submit" class="send_btn" value="Submit"/> 
if(jQuery(this).hasClass('send_btn')) { // check if you've clicked on .send_btn 
    $(this).parents('#myForm').submit(); // submit the form. 
} 


}); 

注:我換成e.preventDefault返回false()。返回false並不是阻止火災事件的標準方式。

編輯: As e.preventDefault();停止元素上的事件,您必須手動使用jQuery提交表單,如上面的代碼所示。

+0

它工作正常,所以謝謝大家。還有一個提交按鈕它也應該提交表單並滾動到#fields2。如果我給按鈕的滾動類提交功能不起作用。 – mujtaba

+0

用解決新問題的方法編輯答案。 – enguerranws

+1

@mujtaba:如果此答案解決了您的問題,請不要忘記在回答前勾選對號將您的問題標記爲已回答。 –