Html to canvas work but when I click on the download button it only download the first div even if I selected another div in the slider image with the mouse. I would like to select a div with image in the slider with the mouse 1/ select it 2/ Download it.thank you very much in advance for your help. Here is the full code:
var $btn = document.getElementById('btnScreenShot');
$btn.addEventListener('mousedown', onScreenShotClick);
function download( canvas, filename ) {
// create an "off-screen" anchor tag
const a = document.createElement('a');
// the key here is to set the download attribute of the a tag
a.download = filename;
// convert canvas content to data-uri for link. When download
// attribute is set the content pointed to by link will be
// pushed as "download" in HTML5 capable browsers
a.href = canvas.toDataURL("image/png;base64");
a.style.display = 'none';
document.body.appendChild( a );
a.click();
document.body.removeChild( a );
}
function onScreenShotClick(event){
const element = document.querySelector("#capture");
html2canvas(element).then( ( canvas ) => {
download( canvas, 'screenshot' );
});
}
#capture {
background-color: #b2f5ea;
padding: 1em;
}
.wp-block-button__link {
background-color: #0073aa;
color: #fff;
transition: background 150ms ease-in-out;
border: none;
font-size: 0.88889em;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
line-height: 1.2;
box-sizing: border-box;
font-weight: bold;
text-decoration: none;
padding: 0.76rem 1rem;
outline: none;
outline: none;
}
img.emoji {
display: inline !important;
border: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
box-shadow: none !important;
}
<script src="http://html2canvas.hertzen.com/dist/html2canvas.js"></script>
<div id="capture">
<div class="myclass">My image1</div>
</div>
<div id="capture">
<div class="myclass">My image2</div>
</div>
<div id="capture">
<div class="myclass">My image3</div>
</div>
<div id="capture">
<div class="myclass">My image4</div>
</div>
<button type="button" class="btnScreenShot" id="btnScreenShot">Take a Screenshot</button>
<div id="output"></div>
Comments
Post a Comment