2012-11-27 20 views
13

मैं किसी निश्चित लिंक पर क्लिक करते समय किसी पृष्ठ के शीर्ष पर स्क्रॉल करने के लिए निम्न का उपयोग कर रहा हूं।पृष्ठ के नीचे jQuery स्क्रॉल

$('.myLinkToTop').click(function() { 
    $('html, body').animate({scrollTop:0}, 'slow'); 
    return false; 
}); 

मैं एक और लिंक बनाना चाहता हूं जो पृष्ठ के नीचे स्क्रॉल करता है। निम्नलिखित ठीक काम कर रहा है। मुझे लगता है कि यह पृष्ठ के नीचे 1000px स्क्रॉल करने का प्रयास करता है, इसलिए यदि पृष्ठ छोटा है तो यह तेज़ी से स्क्रॉल करता है, और यदि पृष्ठ लंबा होता है तो यह नीचे तक नहीं जाता है। मैं खिड़की की ऊंचाई के साथ '1000' कैसे बदल सकता हूं? धन्यवाद

$('.myMenuLink').click(function() { 
    $('html, body').animate({scrollTop:1000}, 'slow'); 
    return false; 
}); 

मुझे पता है कि इस कोड को पृष्ठ के नीचे कूदता है, लेकिन यह आसानी से स्क्रॉल की तरह मैं जरूरत doenst:

$(document).scrollTop($(document).height()); 
+0

आप प्लगइन को आसान और स्विंग की तरह पैरामीटर पारित jQuery का उपयोग करना चाहिए, easein या easeout जो कुछ भी आप सुचारु – defau1t

+0

बस एक चेतावनी, [के लिए चाहते वर्तमान में स्वीकृत उत्तर] (http://stackoverflow.com/a/13583503/383904) वास्तव में गलत/अपूर्ण है (टिप्पणी देखें)। –

उत्तर

31

चेतन और दस्तावेज़ के नीचे करने के लिए स्थानांतरित करने के लिए आपका आवश्यकता से नीचे

HTML कोड प्राप्त किया जा सकता

<html> 
<head> 
</head> 
<body> 
    <div style="height:1500px"> 
     <button class="myLinkToTop" id="but1" >1</button> 
    </div> 
     <button class="myMenuLink" id="but1" >2</button> 
</body> 
</html> 

जे एस

$('.myLinkToTop').click(function() { 
    $('html, body').animate({ 
     scrollTop: $(document).height() 
    }, 'slow'); 
    return false; 
}); 

$('.myMenuLink').click(function() { 
    $('html, body').animate({ 
     scrollTop:0 
    }, 'slow'); 
    return false; 
}); 

देखें सेवा मेरे इस लिंक

http://jsfiddle.net/q6Wsp/6/

+1

होना चाहिए यह एक ** गलत उदाहरण ** है। ** easing ** के नीचे एनिमेट करने के दौरान गलत ऊंचाई गणनाओं के ठीक से समाप्त होने (मंदी) का कोई समय नहीं है - इसके बजाय यह पूरी गति से नीचे हिट करता है। –

4

इस कोड

$(function() { 
    $('#scrlBotm').click(function() { 
     $('html, body').animate({ 
      scrollTop: $(document).height() 
     }, 
     1500); 
     return false; 
    }); 

    $('#scrlTop').click(function() { 
     $('html, body').animate({ 
      scrollTop: '0px' 
     }, 
     1500); 
     return false; 
    }); 
}); 
+0

यह काम करता है लेकिन एनीमेशन दो गुना तेज है क्योंकि यह – Evans

8

आप की जरूरत है की कोशिश करो स्क्रॉल से व्यूपोर्ट ऊंचाई को घटाएं हाइट:

$('#goToBottom').click(function(){ 
 

 
    var WH = $(window).height(); 
 
    var SH = $('body').prop("scrollHeight"); 
 
    $('html, body').stop().animate({scrollTop: SH-WH}, 1000); 
 

 
});
body{height:2000px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="goToBottom">GO TO BOTTOM</button>

3

बहुत लंबे एचटीएमएल दस्तावेज़ों के लिए scrollTop: $ (दस्तावेज़) .height() विफल रहता है, इन मामलों में आप का उपयोग कर सकते हैं:

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

पृष्ठ के अंत में एक डालें:

<div id="endOfPage">&nbsp;</div> 
1

कोड पृष्ठ के निचले भाग तक कोड कूदता है आसानी से:

$ (document) .ready (function() {

$ ('# चयनकर्ता')। क्लिक करें (function() { $ ('एचटीएमएल, शरीर')। चेतन ({ scrollTop : $ (दस्तावेज़) .height() }, 1000); }); });

इस कोड को पेज को नीचे स्क्रॉल करना आसान है।

0

पेज के नीचे स्क्रॉल करने के लिए कोशिश यह:

 $('html, body').animate({ 
      scrollTop: $('html, body').height() 
     }, 'slow'); 
संबंधित मुद्दे