graph2plan / static /js /graph.js
Zai
tada
c2ea21f
raw
history blame
8.29 kB
$(function () {
let startPoint = [0,0];
let generate = false;
var roomSelect = 0;
var mouseDown = false;
var createLinew = false;
/*
var leftsvg = document.getElementById('LeftGraphSVG');
leftsvg.oncontextmenu = function() {
return false;
}
$('#LeftGraphSVG').on('mousedown',function(e){
let selectX = e.clientX - leftsvg.getBoundingClientRect().left;
let selectY = e.clientY - leftsvg.getBoundingClientRect().top;
var arr,reg=new RegExp("(^| )ifSelectRoom=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
roomSelect = arr[2];
}
else{
roomSelect = 0;
}
if(!generate && roomSelect == 1){
//绘制点
clearHighLight();
var curRoom = "NULL";
var curIndex = -1;
arr,reg=new RegExp("(^| )RoomType=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
curRoom = arr[2];
}
arr,reg=new RegExp("(^| )CurNum=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
curIndex = arr[2];
}
var curPoints = d3.select("body").select("#LeftGraphSVG").selectAll("circle");
var point = d3.select("body").select("#LeftGraphSVG").append("circle").attr("fill",roomcolor(curRoom)).attr("r",5)
.attr("stroke","#000000").attr("stroke-width",2).attr("id","TransCircle"+curIndex+"_"+curRoom).on("mousedown",circle_mousedown)
.on("mousemove",circle_mousemove).on("mouseup",circle_mouseup)
.attr("cx",selectX/2).attr("cy",selectY/2).attr("class","TransCircle").append("title")//此处加入title标签
.text(curRoom);
roomSelect = false;
document.cookie = "ifSelectRoom=0";
}
})*/
$('#RightSVG').on('mousedown',function(e){
console.log("Right!");
})
function clearHighLight(){
var points = d3.select("body").select("#LeftGraphSVG").selectAll("circle").attr("stroke-width",0);
}
function circle_mousedown(){
mouseDown = true;
var points = d3.select("body").select("#LeftGraphSVG").selectAll("circle").attr("stroke-width",0);
var selectPoint = d3.select("body").select("#LeftGraphSVG").select("#"+this.id).attr("stroke-width",2);
if(d3.event.button == 2){
selectPoint.remove();
mouseDown = false;
var id = this.id.split("_")[1];
var checkBtns = d3.select("body").selectAll(".checkButton");
checkBtns.each(function(d,i){
var btn_id = this.id.split("_")[1];
if(id == btn_id){
var checkElement = this.parentElement.parentElement;
var todoList = document.getElementById('todo');
checkElement.classList.remove('checked');
deleteAnimation(checkElement);
todoList.insertBefore(checkElement, todoList.firstChild);
}
})
}
}
function circle_mousemove(){
if(mouseDown){
let newX = d3.event.x - leftsvg.getBoundingClientRect().left;
let newY = d3.event.y - leftsvg.getBoundingClientRect().top;
var selectPoint = d3.select("body").select("#LeftGraphSVG").select("#"+this.id)
.attr("cx",newX/2).attr("cy",newY/2);
}
}
function circle_mouseup(){
mouseDown = false;
}
function deleteAnimation(deleteItem) {
/* LEFT SIDE */
const swirlR1 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -100},
radius: 30,
swirlSize: 5,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: 90
});
const swirlR2 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -85},
radius: 25,
swirlSize: 5,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: 70
});
const swirlR3 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -70},
radius: 20,
swirlSize: 5,
swirlFrequency: 1,
duration: 1000,
direction: -1,
degreeShift: 50
});
const swirlL1 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -100},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 1000,
direction: -1,
degreeShift: -90
});
const swirlL2 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -85},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: -10
});
const swirlL3 = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '0%',
fill: 'rgba(255,255,255,1)',
y: {0: -70},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: -30
});
/* RIGHT SIDE */
const swirlR1B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -100},
radius: 30,
swirlSize: 5,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: -90
});
const swirlR2B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -85},
radius: 25,
swirlSize: 5,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: -70
});
const swirlR3B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -70},
radius: 20,
swirlSize: 5,
swirlFrequency: 1,
duration: 1000,
direction: -1,
degreeShift: -50
});
const swirlL1B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -100},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 1000,
direction: -1,
degreeShift: 90
});
const swirlL2B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -85},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: 10
});
const swirlL3B = new mojs.ShapeSwirl({
parent: deleteItem,
top: '100%',
left: '100%',
fill: 'rgba(255,255,255,1)',
y: {0: -70},
radius: 30,
swirlSize: 30,
swirlFrequency: 1,
duration: 500,
direction: -1,
degreeShift: 30
});
const timeline = new mojs.Timeline;
timeline.add(swirlR1, swirlR2, swirlR3, swirlL1, swirlL2, swirlL3, swirlR1B, swirlR2B, swirlR3B, swirlL1B, swirlL2B, swirlL3B);
timeline.play();
}
})