第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

使用原生js、html2canvas來實現(xiàn)拖拽標記(刪除標記)并截取圖片范圍的dom結(jié)構(gòu)變成一張圖片

標簽:
JavaScript

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style>

* {

margin:0;

padding:0;

}

html,body {

width:100%;

height:100%;

}

.drag {

position:absolute;

width:50px;

height:50px;

background-color:red;

z-index: 999;

}

.drag span{

margin-left: 38px;

display: none;

}

.drag:hover span{

display: block;

}

section{

position: relative;

}

</style>

</head>

<body>

<section id="capture" style="padding: 10px;height: 400px;width:600px; background: #f5da55">

<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="img/bg.png"/>

<div class="drag"></div>

</section>

<button id="jie" style="margin-top: 150px;">截图</button>

<script type="text/javascript" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="js/html2canvas.min.js" ></script>

<script>

jie.onclick = function(){

//参考html2canvas的官网的截图api

html2canvas(document.querySelector("#capture")).then(function(canvas){

//把canvas转化成图片

var dataURL = canvas.toDataURL('images/png');

// console.log(typeof dataURL);

console.log(dataURL);

//截取base64的字符串,可以传给后台解析成图片。

var imageDateB64 = dataURL.substring(22);

console.log(typeof imageDateB64);

console.log(imageDateB64);

    document.body.appendChild(canvas)

});

}

var div = document.getElementsByTagName("div");

var capture = document.getElementById("capture");

//浏览器可视区域的宽度

var clientW = document.body.clientWidth;

//浏览器可视区域的高度

var clientH = document.body.clientHeight;

window.onresize = function(){

clientW = document.body.clientWidth;

clientH = document.body.clientHeight;

}


for (var i = 0 ;i<div.length;i++) {

div[i].onmousedown = function(e){

var e = e || window.event;

var disX = this.offsetLeft;

var disY = this.offsetTop;

var x = e.pageX - disX;

        var y = e.pageY - disY;


        var width = this.offsetWidth;

        var height = this.offsetHeight;

//拖拽后克隆一个新的div

        var dv = this.cloneNode(true);

//在新的div下面追加子元素并添加删除事件

        var span = document.createElement("span");

            var node = document.createTextNode("x");

            span.appendChild(node);

            dv.appendChild(span);

//移除被拖拽后的div

            span.onclick = function(){

            this.parentNode.parentNode.removeChild(this.parentNode);

            }

document.onmousemove = function(e){

var e = e || window.event;

            var left = e.pageX - x;

            var top = e.pageY - y;

            if (left < 0) {

                left = 0;

            }

            if (top < 0) {

                top = 0;

            }

            if (left >= clientW - width) {

                left = clientW - width;

            }

            if (top >= clientH - height) {

                top = clientH - height;

            }

//把div的文档流添加为capture的子元素,使被拖拽后的div也能在点击截图按钮的时候被截取成canvas

            capture.appendChild(dv);

          

            

            dv.style.left = left + "px";

            dv.style.top = top + "px";

            

            dv.onmousedown= function(e){

            var e = e || window.event;

var disX = dv.offsetLeft;

var disY = dv.offsetTop;

var x = e.pageX - disX;

        var y = e.pageY - disY;

        var width = dv.offsetWidth;

        var height = dv.offsetHeight;

        document.onmousemove = function(e){

        var e = e || window.event;

            var left = e.pageX - x;

            var top = e.pageY - y;

            if (left < 0) {

                left = 0;

            }

            if (top < 0) {

                top = 0;

            }

            if (left >= clientW - width) {

                left = clientW - width;

            }

            if (top >= clientH - height) {

                top = clientH - height;

            }

            dv.style.left = left + "px";

            dv.style.top = top + "px";

        }

            }

            dv.onmouseup = function(){

             dv.onmousemove = null;

document.onmousedown = null;

         

}

           

}

}

document.onmouseup = function(){

document.onmousedown = null;

        document.onmousemove = null;

}

}

</script>

</body>

</html>


代码写得比较简陋,如果有好的修改优化方法,希望各位码友能留言提出意见,一起进步。


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消