2016-05-06 7 views
9

में वापस जा रहा है, तो किसी को अब भी Sammy.js उपयोग कर रहा है पता नहीं है, लेकिन मैंने पाया यह पूरी तरह एक हल्के मार्ग और templating पुस्तकालय के लिए मेरी जरूरतों सूट। अगर किसी के पास अन्य विचार हैं, तो कृपया मुझे बताएं।Sammy.js कैश और स्थिति स्क्रॉल जब इतिहास

मेरी समस्या यह है कि जब मेरे पास एक लंबा पृष्ठ होता है और मैं नीचे स्क्रॉल करता हूं, तो इस पृष्ठ पर एक लिंक पर क्लिक करें और वापस जाएं, पूरा पृष्ठ पुनः लोड किया गया है (सैमी में, जीईटी मार्ग कहा जाता है) और यह कूदता है पृष्ठ के उपर।

मेरे सवाल यह है: वहाँ जब इतिहास में वापस जा रहा सैमी कैश पेज है और स्क्रॉल स्थिति को बनाए रखने के लिए एक रास्ता है?

अग्रिम धन्यवाद।

+1

एक समाधान मेरा सुझाव है, http://stackoverflow.com/a/5651372/2346893 http://stackoverflow.com/a/10115269/2346893 के साथ संयुक्त रूप में, तुम भी जोड़ सकते हैं यदि आप पेज को स्क्रॉल करते हैं, तो हैश इतिहास में वर्तमान दृश्य तत्व की आईडी, यदि आप इसे मैन्युअल रूप से नहीं करना चाहते हैं। –

+0

आप प्रत्येक विज़िट किए गए पृष्ठ में पैरामीटर के रूप में स्क्रॉलटॉप और यूआरएल पास करने के लिए स्थानीय स्टोरेज का उपयोग कर सकते हैं। –

उत्तर

5

आप एक जोड़ी के रूप यूआरएल-scrollTop स्टोर करने के लिए वैकल्पिक मार्ग के रूप में इस्तेमाल कर सकते हैं localStorage। इस प्रकार ब्राउज़र निर्दिष्ट यूआरएल के लिए srolltop स्थिति याद करता है।

var scroltop,url; 
$(window).scroll(function() { 
    scroltop = $(this).scrollTop(); 
    url = window.location.href; 
    clearTimeout($.data(this, 'scrollTimer')); 
    $.data(this, 'scrollTimer', setTimeout(function() { 
    localStorage.setItem(url,scroltop); 
    }, 250)); 
}); 
if(localStorage.getItem(window.location.href)) { 
    url = window.location.href; 
    scroltop = localStorage.getItem(url); 
    $(window).scrollTop(scroltop); 
} 

JSbin example

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