Проблема в том, что html2canvas делает скриншот всего селектора (в данном случа это body), который указан. А как сделать так, чтобы был только скриншот той части страницы, которая видна экране? Если указать ширину и высоту, соответствующую размеру экрана, то получается скриншот верхней части страницы, размером с экран. Надеюсь, что понятно изложил суть проблемы. Хелп :)
$("#scrShot").click(function(){
html2canvas($("body"), {
//width: document.documentElement.clientWidth,
//height: document.documentElement.clientHeight,
onrendered: function(canvas) {
var myImage = canvas.toDataURL();
window.open(myImage);
}
});
});
P.S. в идеале еще бы этот скриншот сразу открыть в canvas для редактирования. Но это пока второстепенно.
Все, разобрался. В новой версии html2canvas имеется возможность опционально задать величину прокрутки (y: value), указывающую на смещение по оси Y. В итоге просто перед выполнением функции нужно получить значение var scrollFromTop = window.pageYOffset, а затем на эту же величину прокрутить экран при выполнении функции:
html2canvas(document.body, {
width:document.documentElement.clientWidth,
height: document.documentElement.clientHeight+scrolledFromTop,
y: scrollFromTop,
}).then(function(canvas) {
//некоторый код
});
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Задача такая, пишу скрипт для сайта по сбору баллов, на котором по клику открывается pop-up окно с ютуб видеоМне надо как-то отследить его открытие...
Этот скрипт срабатывает один разПри клике кнопка блокируется