2013-09-21 11 views
10

używam biblioteki html2canvas, stosując następujący kod:On czyni w Html2Canvas, strona jest przewijane na górę

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

Kiedy onrendered jest zwolniony, gdy strona jest automatycznie przewijana do góry. Czy mimo to możemy utrzymać pozycję przewijania i nie być automatycznie przenoszeni na górę strony?

+0

wygląda to samo dzieje się na stronie demo tutaj: http://html2canvas.hertzen.com/examples. html jesteś w stanie przechować przewijak przed wywołaniem html2canvas i ustawienie go z powrotem w onrendered obsługi? –

Odpowiedz

19

Przyjrzałem do html2canvas.js i zobaczyłem następujący wiersz:

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

Po komentując window.scroll(0,0) out, to działało w porządku dla mnie na moim lokalnym testowania. Wygląda na to, że takie zachowanie było zamierzone przez autora.

Oczywiście można również zapisać aktualną pozycję przewijania w zmiennej podczas uruchamiania kodu. Sposób, w jaki możesz to zrobić, zależy od sposobu wykonania html2canvas. Jeśli jest to przycisk jak na stronie demo, należy dodać detektor zdarzeń do tego przycisku:

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

To fantastyczne, zauważyłem tę linię zaraz po tym, jak wysłałem moją nagrodę. Wszystko jest twoje, jak tylko mogę to wynagrodzić :). Dzięki za pomoc. – mattytommo

+0

Cieszę się, że mogłem pomóc. Dziękuję Ci! =) – SVSchmidt

+0

Idealny! Dziękuję Ci. – lwdthe1

Powiązane problemy