欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識(shí)庫 > html5利用canvas繪畫二級(jí)樹形結(jié)構(gòu)圖的示例

html5利用canvas繪畫二級(jí)樹形結(jié)構(gòu)圖的示例

熱門標(biāo)簽:中紳電銷智能機(jī)器人 鄭州電銷外呼系統(tǒng)違法嗎 ai電銷機(jī)器人連接網(wǎng)關(guān) 農(nóng)村住宅地圖標(biāo)注 威海營銷外呼系統(tǒng)招商 濟(jì)南辦理400電話 跟電銷機(jī)器人做同事 漳州人工外呼系統(tǒng)排名 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)怎么安裝

上周需要做一個(gè)把頁面左側(cè)列表內(nèi)容拖拽到右側(cè)區(qū)域,并且繪制成關(guān)系樹的功能。

看了設(shè)計(jì)圖,第一反應(yīng)是用canvas繪制關(guān)系線。

吭哧吭哧搞定這個(gè)功能后,發(fā)現(xiàn)用canvas繪圖,有一個(gè)很嚴(yán)重的缺陷。那就是如果左側(cè)關(guān)系特別多,需要繪制成百上千條時(shí),而canvas畫布的寬高在寫dom的時(shí)候就已聲明。關(guān)系很多的情況下,無法使用canvas。

不過還是記錄一下研究成果。

下面是設(shè)計(jì)圖:

做出效果如下:

html、css代碼就不貼了。 js主要用到了拖拽、canvas繪制。

function startDrag(ev) {
    ev.dataTransfer.setData("Text",ev.target.innerText);
}

function allowDrop(ev) {
    ev.preventDefault();
}

function decideDrop(ev) {
    ev.preventDefault();
    var length = $('.main-target').length;
    if(length == 0){
        dropToMain(ev);
    }else {
        dropToRelate(ev);
    }
}

function dropToMain(ev) {
    var data=ev.dataTransfer.getData("Text");
    var _html = '<div class="main-target">' + data + '</div>';
    $('.main-target-wrap').width('auto').append(_html);
}

function dropToRelate(ev) {
    //畫關(guān)系線
    drawLineOne(document.getElementById('canvasOne'), 'begin');
    drawLineOne(document.getElementById('canvasTwo'), 'end');

    //插入圖片 以及圖片初始化點(diǎn)擊事件
    var _img = $('<img src="inner.png">');
    $('.imgBox').append(_img);
    _img.click(showRelationBox);
    //寫入數(shù)據(jù)
    var data = ev.dataTransfer.getData('Text');
    var _html = '<div class="item-text">' + data + '</div>';
    $('.relation-text-box').append(_html);
}

以上是拖拽的方法,我也是一邊看菜鳥教程,一邊寫出的拖拽方法。

function drawLineOne(canvas, flag) {
    var context = canvas.getContext('2d');
    var position = {};
    if(flag == "begin"){
        position = getCanvasOnePosition();
    }else {
        position = getCanvasTwoPosition();
    }
    context.beginPath();
    context.moveTo(position.beginX, position.beginY);
    context.lineTo(position.endX, position.endY);
    if(position.endX2 && position.endY2){
        context.lineTo(position.endX2, position.endY2);
    }
    context.strokeStyle = "#333";
    context.stroke();
}

/**
 * 左側(cè)關(guān)系線
 * @returns {{beginX: *, beginY: *, endX: *, endY: *}}
 */
function getCanvasOnePosition() {
    var imgLength = $('.imgBox img').length;
    var beginX = (imgLength == 0) ? 0 : 77,
        beginY = (imgLength == 0) ? 15 : (15 + 60 * (imgLength-1)),
        endX = (imgLength == 0) ? 155 : 77,
        endY = 60*imgLength + 15;
    var position = {beginX: beginX, beginY: beginY, endX: endX, endY: endY};
    if(imgLength > 0){
        position.endX2 = 155;
        position.endY2 = endY;
    }
    return position;
}

function getCanvasTwoPosition() {
    var imgLength = $('.imgBox img').length;
    var endY = 15 + 60*imgLength
    return {beginX: 0, beginY: endY, endX: 155, endY: endY}
}

以上是canvas畫線的方法,代碼沒什么難點(diǎn),主要就是分析線的起始坐標(biāo)麻煩一些。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:紅河 萍鄉(xiāng) 營口 甘南 咸陽 蘇州 惠州 文山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5利用canvas繪畫二級(jí)樹形結(jié)構(gòu)圖的示例》,本文關(guān)鍵詞  html5,利用,canvas,繪畫,二級(jí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5利用canvas繪畫二級(jí)樹形結(jié)構(gòu)圖的示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5利用canvas繪畫二級(jí)樹形結(jié)構(gòu)圖的示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美三级日韩三级| 水野朝阳av一区二区三区| 国产露脸91国语对白| av黄色免费网站| 欧美一区二区三区免费大片| 亚洲综合一区二区三区| 97精品电影院| 91福利视频久久久久| 亚洲天堂a在线| 91在线一区二区三区| 99视频只有精品| 亚洲欧洲日韩av| 99re在线精品| 欧美日韩一区三区| 亚洲在线免费播放| 欧美激情 亚洲| 5858s免费视频成人| 日韩电影一区二区三区| 野花社区视频在线观看| 日韩美一区二区三区| 久久se精品一区精品二区| 久久国产柳州莫菁门| 久久久www成人免费无遮挡大片| 黑人巨大精品欧美一区| www成人啪啪18软件| 中文字幕精品一区二区三区精品| 国产精品一二三四区| 日韩在线观看视频一区二区| 成人欧美一区二区三区1314| 日本黄色www| 99久久精品国产网站| 欧美亚洲日本在线| 亚洲一二三区不卡| 懂色av粉嫩av蜜乳av| 欧美精品一区二区三区在线| 国产精品系列在线播放| 色综合久久久久综合体| 亚洲国产另类av| 男人天堂av电影| 欧美激情一区三区| 亚洲欧美激情一区二区三区| 91精品国产免费| 国内精品久久久久影院薰衣草| av最新在线观看| 亚洲精品免费在线播放| 超碰caoprom| 国产亚洲精品福利| 91丨九色porny丨蝌蚪| 欧美一区二区三区电影| 国产东北露脸精品视频| 在线观看不卡一区| 奇米色一区二区| 三级在线观看免费大全| 亚洲国产另类av| gv天堂gv无码男同在线观看 | 亚洲国产精品成人综合久久久| 精品欧美一区二区在线观看| 国产成人aaa| 欧美日韩大陆在线| 国产一区二区免费看| 欧美最猛性xxxxx直播| 免费久久99精品国产| 久久久久久视频| 首页国产欧美日韩丝袜| 亚洲精品国产精品乱码在线观看| 亚洲综合激情另类小说区| 91精品国自产在线| 亚洲国产成人tv| 一本一本久久a久久| 亚洲丶国产丶欧美一区二区三区| 欧美性受xxxx黑人| 亚洲成人一区在线| 亚洲怡红院在线观看| 丝袜美腿亚洲色图| 男人的天堂久久久| 另类小说综合欧美亚洲| 日本道精品一区二区三区| 久久精品免费观看| 欧美色综合影院| 国产91在线观看| 精品黑人一区二区三区久久| 波多野吉衣在线视频| 欧美国产乱子伦 | 中文在线观看免费视频| 国产欧美精品一区二区三区四区 | 日韩中文字幕区一区有砖一区| 国产麻豆a毛片| 日本欧美肥老太交大片| 国产精品911| 日韩色在线观看| 日本r级电影在线观看 | 国产a级片视频| 日本一区二区三区四区| 性欧美丰满熟妇xxxx性仙踪林| 一区二区三区高清不卡| 免费成人深夜夜行网站| 另类欧美日韩国产在线| 欧美老女人在线| 91在线观看免费视频| 国产精品私人影院| 久久久久久久久久久久| 日韩精品午夜视频| 欧美日韩你懂的| 四虎国产精品永久免费观看视频| 国产精品久久综合| 午夜黄色福利视频| 精品一区二区三区视频在线观看| 欧美一区二区三区在线电影 | 91婷婷韩国欧美一区二区| 国产精品午夜电影| 国产又粗又黄又猛| 久久精品理论片| 欧美成人性福生活免费看| 久草视频福利在线| 亚洲国产中文字幕| 欧美色中文字幕| 色欲欲www成人网站| 亚洲综合999| 欧美色中文字幕| 香蕉视频免费网站| 一个色综合av| 欧美性猛交xxxxxxxx| 99re66热这里只有精品3直播| 亚洲欧美在线aaa| 色综合久久中文字幕综合网| 高清国产一区二区| 亚洲欧美综合色| 色婷婷综合久久久中文字幕| 成人国产电影网| 亚洲人成网站色在线观看| 午夜av入18在线| 91麻豆国产福利在线观看| 亚洲美女视频在线| 欧美午夜免费电影| 美国黄色一级视频| 天堂蜜桃91精品| 欧美不卡一区二区三区四区| 日本一区二区三区网站| 麻豆成人久久精品二区三区红 | 亚洲の无码国产の无码步美| 日本午夜一本久久久综合| 日韩一区二区在线观看视频播放| 亚洲永久无码7777kkk| 久久国产婷婷国产香蕉| 国产拍揄自揄精品视频麻豆| 亚洲一区电影在线观看| 97久久超碰国产精品| 亚洲成人手机在线| 精品精品欲导航| 婷婷激情四射网| 黄色片子免费看| 舔着乳尖日韩一区| 久久久精品综合| 国产黄色片在线免费观看| 91麻豆swag| 日韩激情av在线| 久久久久久久久久电影| 国产一区二区播放| 精品人妻一区二区免费| 蜜臀av在线播放一区二区三区| 久久婷婷一区二区三区| 亚洲天堂黄色片| 精人妻一区二区三区| 美脚の诱脚舐め脚责91| 国产精品青草久久| 欧美三级电影在线观看| 成人精品在线观看视频| 国产成人午夜高潮毛片| 亚洲最大成人综合| 久久一区二区三区四区| 91精品办公室少妇高潮对白| 精品人妻一区二区免费视频| 国产一区二区久久| 一区二区三区在线视频免费观看| 欧美一区二区三区四区久久| 欧美巨胸大乳hitomi| 超级砰砰砰97免费观看最新一期 | 成人免费的视频| 午夜精品久久久久久久久| 2023国产精品视频| 在线一区二区三区四区五区| 中文字幕丰满乱子伦无码专区| 国产成人av电影在线播放| 亚洲国产精品综合小说图片区| 久久久久久久久久美女| 欧美视频在线观看一区二区| xxxx日本黄色| 一个人看的视频www| 国内外成人在线视频| 一区二区三区国产| 久久久久久99精品| 欧美色欧美亚洲另类二区| xxxxx99| 亚洲av午夜精品一区二区三区| 极品美女销魂一区二区三区| 一区二区三区在线视频播放| 久久久久久久av麻豆果冻| 欧美精品国产精品| 国产高潮流白浆| 中文字幕国产综合|