2016-04-14 11 views
6

के आधार पर jQuery परिवर्तन गति, आप ब्राउज़र विंडो के शीर्ष पर वापस स्क्रॉल करते समय अपेक्षाकृत स्थिर गति रखने की कोशिश कर रहे हैं, इस पृष्ठ के शीर्ष से कितनी दूर है।दूरी

तो, यदि आपने पेज 500px या 5000px को स्क्रॉल किया है, तो मैं एक फ़ंक्शन बनाना चाहता हूं जो गणना करता है कि निरंतर गति को बनाए रखने के लिए इसे कितनी देर तक एनिमेट करने के लिए लेना चाहिए।

var scrollTo = function() { 
    var top = $(window).scrollTop(); 
    var dist = $('.article').offset().top; 
    var speed = // not sure what goes here depending on distance 

    $('html, body').animate({scrollTop: dist}, speed, 'linear'); 
}; 
+0

'var speed = distance * <मिलीसेकंड प्रति इकाई दूरी>', जैसे कि आप क्रमश: 1000ms और 3000ms में 500 और 1500 की दूरी को कवर करना चाहते हैं, तो सूत्र 'var speed = distance * 2' –

उत्तर

4

आप distance * <millisecond per unit distance> की तरह कुछ का उपयोग कर सकते,

की तरह अगर आप क्रमश: 500 और 1000ms और 3000ms में 1500 की दूरी कवर करना चाहते सूत्र होगा

var speed = distance * 2 

पूर्व:

var scrollTo = function() { 
 

 
    var dist = jQuery(window).scrollTop(); 
 
    var speed = dist * 2; 
 

 
    $('html, body').animate({ 
 
    scrollTop: 0 
 
    }, speed); 
 
}
body { 
 
    height: 5000px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a style="position:fixed; top: 10px" onclick="scrollTo()">top</a>

+0

धन्यवाद अरुण चाल है – George

+0

कोड स्निपेट काम करता है? जब मैंने कोशिश की तो कुछ भी नहीं करें ... – Petroff

+0

@ पेट्रोफ आपको स्क्रॉल करने की आवश्यकता है और शीर्ष –

संबंधित मुद्दे