2013-09-21 10 views
10

को स्क्रॉल किया है मैं html2canvas पुस्तकालय का उपयोग कर रहा है, तो निम्न कोड का उपयोग:पर Html2Canvas में प्रस्तुत करना, पेज शीर्ष

html2canvas(document.body, { 
    onrendered: function(canvas) { 
     document.body.appendChild(canvas); 
    } 
}); 

जब onrendered निकाल दिया जाता है वह पृष्ठ अपने आप शीर्ष करने के लिए स्क्रॉल किया गया है। क्या वैसे भी हम अपनी स्क्रॉल स्थिति को बनाए रख सकते हैं और स्वचालित रूप से पृष्ठ के शीर्ष पर नहीं ले जा सकते हैं?

+0

लग रहा है एक ही बात की तरह यहाँ डेमो पृष्ठ पर होता है: http://html2canvas.hertzen.com/examples। एचटीएमएल क्या आप html2canvas को कॉल करने से पहले स्क्रॉलटॉप स्टोर कर सकते हैं और उसे ऑनरेंडर हैंडलर में वापस सेट कर सकते हैं? –

उत्तर

19

मैं html2canvas.js में एक दृष्टि डाली और निम्न पंक्ति देखा:

_html2canvas.Parse = function (images, options) { 
    window.scroll(0,0); 

window.scroll(0,0) बाहर टिप्पणी के बाद, यह ठीक मेरे लिए अपने स्थानीय परीक्षण पर काम किया। ऐसा लगता है कि उस व्यवहार का उद्देश्य लेखक द्वारा किया गया था।

बेशक आप कोड को फायर करते समय अपनी वर्तमान स्क्रॉल स्थिति को एक चर में सहेज सकते हैं। जिस तरह से आप यह कर सकते हैं इस पर निर्भर करता है कि आप html2canvas को कैसे निष्पादित करते हैं। यदि यह डेमो पृष्ठ पर की तरह एक बटन है, तो आप उस बटन को एक घटना श्रोता जोड़ना होगा:

var scrollPos; 
document.querySelector("screenshotButton").addEventListener("click",function() { 
    scrollPos = document.body.scrollTop; 
    html2canvas(document.body, { 
     onrendered: function(canvas) { 
      document.body.appendChild(canvas); 
      window.scrollTo(0,scrollPos); 
     } 
    }); 
}); 
+0

यह शानदार है, मैंने अपनी बाउंटी पोस्ट करने के बाद भी उस रेखा को देखा। जैसे ही मैं इसे पुरस्कृत कर सकता हूं यह सब तुम्हारा है :)। आपकी सहायता के लिए धन्यवाद. – mattytommo

+0

मुझे खुशी है कि मैं मदद कर सकता हूं। धन्यवाद! =) – SVSchmidt

+0

बिल्कुल सही! धन्यवाद। – lwdthe1

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