script.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. // addClass
  2. function Cmaplink() {
  3. }
  4. // Streetmap
  5. function map() {
  6. var mymap = L.map('mapid').setView([48.9367935,2.3569287], 17);
  7. setTimeout(mymap.invalidateSize.bind(map));
  8. L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
  9. maxZoom: 18,
  10. id: 'mapbox.streets'
  11. }).addTo(mymap);
  12. var LeafIcon = L.Icon.extend({
  13. options: {
  14. iconSize: [15, 49],
  15. iconAnchor: [7.5, 5],
  16. alt: 'cc',
  17. }
  18. });
  19. var markers = {};
  20. var greenIcon = new LeafIcon({iconUrl: 'user/themes/r2c/images/pointeur2.svg'})
  21. for (var i = 0; i < dyn_data.mappoints.length; i++) {
  22. var id = dyn_data.mappoints[i].id;
  23. markers[id] = L.marker([dyn_data.mappoints[i].lat, dyn_data.mappoints[i].long], {icon: greenIcon}).bindPopup(dyn_data.mappoints[i].title).addTo(mymap);
  24. markers[id]._icon.id = id;
  25. var cible = dyn_data.mappoints[i].target;
  26. }
  27. };
  28. // change mouse_event
  29. function clickhand(){
  30. $(".handler").on("mousedown", function (e) {
  31. e.preventDefault();
  32. $(this).addClass("mouseDown");
  33. }).on("mouseup", function () {
  34. $(this).removeClass("mouseDown");
  35. });
  36. };
  37. function drag() {
  38. var $hand = $( ".handler" );
  39. var $hand1 = $( ".hand1" );
  40. var $hand2 = $( ".hand2" );
  41. var p = 100;
  42. //marge
  43. var mrg = 1;
  44. // Blocs
  45. // find
  46. var $recits = $hand.parents('#page').find('#recits');
  47. var $itw = $hand.parents('#page').find("#interviews");
  48. var $img = $hand.parents('#page').find("#images");
  49. var $stmp = $hand.parents('#page').find("#streetmap");
  50. var $rs = $hand.parents('#page').find("#reseaux-sociaux");
  51. var $links = $hand.parents('#page').find("#links");
  52. // handler
  53. // dimension
  54. var $Whand = parseFloat($hand.outerWidth(true));
  55. var $Hhand = parseFloat($hand.outerHeight(true));
  56. $hand1.draggable({
  57. containment: "#start",
  58. scroll: false,
  59. drag: function(event, ui){
  60. var oW = parseFloat($("#start").outerWidth(true));
  61. var oH = parseFloat($("#start").outerHeight(true));
  62. var ajustH = (100 * ( 25/ oH )) + "%";
  63. var stophand = (0.8 * oW) - 130;
  64. ui.position.left = Math.max( 200, ui.position.left );
  65. ui.position.left = Math.min( stophand, ui.position.left );
  66. // handler
  67. // position
  68. var pos = $hand1.position();
  69. var pos1 = $hand2.position();
  70. var pos11 = parseFloat(pos1.left) + 25;
  71. // center handler
  72. var ajustW = $Whand / 2;
  73. var ajustH = $Hhand / 2;
  74. // position XY
  75. var xPos = ( p * parseFloat( ((ui.position.left)) / oW) ) + "%" ;
  76. var yPos = ( p * parseFloat( ((ui.position.top)) / oH ) ) + "%" ;
  77. var xPos2 = ( p * parseFloat( ((ui.position.left ) ) / oW) ) + "%";
  78. var yPos2 = ( p * parseFloat( ((ui.position.top ) ) / oH) ) + "%" ;
  79. var xPos3 = ( p * parseFloat( (pos1.left + ajustW) / oW) ) + "%";
  80. var yPos3 = ( p * parseFloat( (ui.position.top ) / oH) ) + "%" ;
  81. //handler2
  82. var $handler2 = $(this).parent().find('.hand2');
  83. var PosHand = ( parseFloat(p * parseFloat((pos11 - 25) / oW)) - parseFloat(p * parseFloat( (ui.position.left) / oW)) ) + "%";
  84. // application dimension
  85. $hand2.css({
  86. 'top': yPos3,
  87. })
  88. $recits.css({
  89. "width": xPos,
  90. "height": yPos,
  91. "left": "-2px",
  92. })
  93. $itw.css({
  94. "left":xPos2,
  95. "width": PosHand,
  96. "height": yPos,
  97. "min-width": "200px"
  98. })
  99. $img.css({
  100. "height": yPos,
  101. "min-width": "200px",
  102. })
  103. $stmp.css({
  104. "width":xPos,
  105. "top": yPos2,
  106. "bottom":"1px",
  107. "height": 'auto',
  108. })
  109. $links.css({
  110. "top": yPos2,
  111. "left":xPos2,
  112. "width":PosHand,
  113. "bottom":"1px",
  114. "height": 'auto',
  115. })
  116. $rs.css({
  117. "top": yPos2,
  118. "bottom":0,
  119. "height": 'auto',
  120. })
  121. // if itw < 200
  122. var testPourcent = parseFloat( p * parseFloat(ui.position.left + 238) / oW ) + "%";
  123. var img200 = parseFloat( p * parseFloat( (oW - (pos11 - 25 )) / oW) ) + "%" ;
  124. if ( $itw.width() < 200) {
  125. $img.css({
  126. "width": img200,
  127. })
  128. $rs.css({
  129. "width": img200,
  130. })
  131. $hand2.css({
  132. 'left':testPourcent,
  133. })
  134. } else {}
  135. },
  136. stop: function( event, ui ) {
  137. var parent = $(this).parents('#start');
  138. $(this).css({
  139. left:parseInt($(this).css('left'))/parent.width()*100+"%",
  140. top: parseInt($(this).css('top'))/parent.height()*100+"%",
  141. });
  142. },
  143. });
  144. $hand2.draggable({
  145. containment: "#start",
  146. scroll: false,
  147. drag: function(event, ui){
  148. var oW = parseFloat($("#start").outerWidth(true));
  149. var oH = parseFloat($("#start").outerHeight(true));
  150. var stophand = (oW - 200) - 50;
  151. console.log(stophand)
  152. ui.position.left = Math.max( 400, ui.position.left );
  153. ui.position.left = Math.min( stophand, ui.position.left );
  154. // handler
  155. // position
  156. var pos = $hand1.position();
  157. var pos1 = $hand2.position();
  158. var pos11 = parseFloat(pos.left) + 25;
  159. // center
  160. var ajustW = $Whand / 2 - 1;
  161. var ajustH = $Hhand / 2 + 1;
  162. var ajustW200 = $Whand / 2 + 6;
  163. var ajustW2 = $Whand / 2 + 1;
  164. var ajustH2 = $Hhand / 2 + 1;
  165. var ajustW3 = $Whand / 2 + 3;
  166. var ajustH3 = $Hhand / 2 + 1;
  167. // position XY
  168. var xPos = ( p * parseFloat( ( oW - (ui.position.left) ) / oW) + "%" );
  169. var yPos = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  170. var xPos2 = ( p * parseFloat( ( oW - (ui.position.left) ) / oW ) ) + "%";
  171. var yPos2 = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  172. // var xPos3 = ( p * parseFloat( (oW - (pos.left)) / oW ) ) + "%";
  173. var xPos3 = ( p * parseFloat( (pos1.left + ajustW) / oW) ) + "%";
  174. var yPos3 = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  175. //handler2
  176. var $handler2 = $(this).parent().find('.hand2');
  177. var PosHand = (parseFloat(xPos3) - parseFloat(xPos)) + "%";
  178. var PosHand1 = ( parseFloat(p * parseFloat( (ui.position.left) / oW)) - parseFloat(p * parseFloat((pos11 - 25) / oW))) + "%";
  179. // application dimension
  180. $hand1.css({
  181. 'top': yPos3,
  182. })
  183. $recits.css({
  184. "height": yPos,
  185. })
  186. $itw.css({
  187. "width": PosHand1,
  188. "height": yPos,
  189. })
  190. $img.css({
  191. "width": xPos,
  192. "height": yPos,
  193. })
  194. $stmp.css({
  195. "top": yPos2,
  196. "bottom":"1px",
  197. "height": 'auto',
  198. })
  199. $rs.css({
  200. "width":xPos,
  201. "top": yPos2,
  202. "bottom":0,
  203. "height": 'auto',
  204. })
  205. $links.css({
  206. "top": yPos2,
  207. "width":PosHand1,
  208. "bottom":"1px",
  209. "height": 'auto',
  210. })
  211. // if itw < 200
  212. var test = ui.position.left - 225;
  213. var testPourcent = ( p * parseFloat(test) / oW ) + "%";
  214. var img200 = ( p * parseFloat( ((pos.left) ) / oW) + "%" );
  215. if ( $itw.width() < 200) {
  216. $recits.css({
  217. "width": img200,
  218. })
  219. $stmp.css({
  220. "width": img200,
  221. })
  222. $itw.css({
  223. "left": img200,
  224. })
  225. $links.css({
  226. "left": img200,
  227. })
  228. $hand1.css({
  229. 'left':test,
  230. })
  231. }else {}
  232. },
  233. stop: function( event, ui ) {
  234. var parent = $(this).parents("#start");
  235. $(this).css({
  236. left:parseInt($(this).css('left'))/parent.width()*100+"%",
  237. top: parseInt($(this).css('top'))/parent.height()*100+"%",
  238. });
  239. },
  240. });
  241. };
  242. // draggable
  243. function dragcanvas() {
  244. var $reseau = $('#reseaux-sociaux canvas');
  245. var $links = $('#links svg g')
  246. $links.draggable({
  247. scroll: false
  248. });
  249. $reseau.draggable({
  250. scroll: false
  251. });
  252. }
  253. // hidden scroll + synchro
  254. function mCustomScrollbar() {
  255. $('.blocs').mCustomScrollbar({
  256. mouseWheel:{
  257. deltaFactor: 5
  258. },
  259. scrollInertia: 1000,
  260. });
  261. $(document).on("click","a[href^='#'],#links .nodes text[href^='#'],#streetmap img[href^='#']",function(e){
  262. e.preventDefault();
  263. var hrefs = $(this).attr("href").split(',');
  264. console.log('hrefs', hrefs);
  265. var h, h_parts;
  266. for (var i = 0; i < hrefs.length; i++) {
  267. h = hrefs[i];
  268. h_parts = h.match(/^#(([^_]+)_(.+)$)/);
  269. console.log('h_parts', h_parts);
  270. function scrollTo() {
  271. var href = target.find(h_parts[0]);
  272. e.preventDefault();
  273. target.mCustomScrollbar("scrollTo",href,{
  274. scrollInertia:1000,
  275. });
  276. }
  277. switch (h_parts[2]) {
  278. case 'rct':
  279. var target = $('#recits.mCustomScrollbar');
  280. scrollTo();
  281. break;
  282. case 'int':
  283. var target = $('#interviews.mCustomScrollbar');
  284. scrollTo();
  285. break;
  286. case 'img':
  287. var target = $('#images.mCustomScrollbar');
  288. scrollTo();
  289. break;
  290. case 'mp':
  291. var target = $('#streetmap.mCustomScrollbar');
  292. scrollTo();
  293. break;
  294. case 'lk':
  295. var target = $('#links.mCustomScrollbar');
  296. scrollTo();
  297. var href = target.find(h_parts[0]);
  298. var text = $('.nodes text.group1');
  299. var text2 = $('.nodes text.group2');
  300. var text3 = $('.nodes text.group3');
  301. console.log('cc');
  302. text.css({
  303. 'font-size':'inherit',
  304. 'fill':'black',
  305. });
  306. text2.css({
  307. 'font-size':'inherit',
  308. 'fill':'grey',
  309. });
  310. text3.css({
  311. 'font-size':'inherit',
  312. 'fill':'lightgrey',
  313. });
  314. if (href) {
  315. href.css({
  316. 'font-size':'1.2rem',
  317. 'fill':'blue',
  318. });
  319. }
  320. break;
  321. // case 'rs':
  322. // var target = $('#reseaux-sociaux.mCustomScrollbar');
  323. // scrollTo();
  324. // break;
  325. // case '':
  326. // etc
  327. // break;
  328. default:
  329. }
  330. }
  331. });
  332. }
  333. function clicklinkmap() {
  334. $("text#lk_martine").on("click", function(){
  335. // var href = target.find(h_parts[0]);
  336. // var text = $('.nodes text.group1');
  337. // var text2 = $('.nodes text.group2');
  338. // var text3 = $('.nodes text.group3');
  339. // text.css({
  340. // 'font-size':'inherit',
  341. // 'fill':'black',
  342. // });
  343. // text2.css({
  344. // 'font-size':'inherit',
  345. // 'fill':'grey',
  346. // });
  347. // text3.css({
  348. // 'font-size':'inherit',
  349. // 'fill':'lightgrey',
  350. // });
  351. //
  352. // if (href) {
  353. // href.css({
  354. // 'font-size':'1.2rem',
  355. // 'fill':'blue',
  356. // });
  357. // }
  358. // $("svg .nodes text").css({
  359. // 'font-size':'1.2rem',
  360. // 'z-index': '999',
  361. // 'fill':'blue',
  362. // })
  363. });
  364. }
  365. function paperjs() {
  366. paper.install(window);
  367. window.onload = function() {
  368. // Get a reference to the canvas object
  369. var canvas = document.getElementById('canvas');
  370. // Create an empty project and a view for the canvas:
  371. paper.setup(canvas);
  372. // Create a Paper.js Path to draw a line into it:
  373. // The amount of segment points we want to create:
  374. var amount = [1, 2, 3, 4, 5];
  375. var height = 200;
  376. var width = 500;
  377. // Create a new path and style it:
  378. var path = new paper.Path({
  379. fillColor: 'grey',
  380. });
  381. path.blendMode = 'multiply';
  382. path.closed = true;
  383. path.fullySelected = false;
  384. path._reseaux = "facebook";
  385. console.log('path',path);
  386. var path2 = new paper.Path({
  387. fillColor: 'grey',
  388. });
  389. path2.blendMode = 'multiply';
  390. path2.closed = true;
  391. path2.fullySelected = false;
  392. path._reseaux = "instagram";
  393. var path3 = new paper.Path({
  394. fillColor: 'grey',
  395. });
  396. path3.blendMode = 'multiply';
  397. path3.closed = true;
  398. path3.fullySelected = false;
  399. path._reseaux = "Whatsapp";
  400. var path4 = new paper.Path({
  401. fillColor: 'grey',
  402. });
  403. path4.blendMode = 'multiply';
  404. path4.closed = true;
  405. path4.fullySelected = false;
  406. path._reseaux = "framasoft";
  407. var path5 = new paper.Path({
  408. fillColor: 'grey',
  409. });
  410. path5.blendMode = 'multiply';
  411. path5.closed = true;
  412. path5.fullySelected = false;
  413. path._reseaux = "skype";
  414. var path6 = new paper.Path({
  415. fillColor: 'grey',
  416. });
  417. path6.blendMode = 'multiply';
  418. path6.closed = true;
  419. path6.fullySelected = false;
  420. path._reseaux = "email";
  421. var path7 = new paper.Path({
  422. fillColor: 'grey',
  423. });
  424. path7.blendMode = 'multiply';
  425. path7.closed = true;
  426. path7.fullySelected = false;
  427. path._reseaux = "siteweb";
  428. var path8 = new paper.Path({
  429. fillColor: 'grey',
  430. });
  431. path8.blendMode = 'multiply';
  432. path8.closed = true;
  433. path8.fullySelected = false;
  434. path._reseaux = "outilsgoogle";
  435. for (var i = 0; i <= amount.length; i++) {
  436. var maxPoint = new paper.Point(100, 100);
  437. var point = maxPoint;
  438. path.add(point);
  439. path2.add(point);
  440. path3.add(point);
  441. path4.add(point);
  442. path5.add(point);
  443. path6.add(point);
  444. path7.add(point);
  445. path8.add(point);
  446. // path3.add(point);
  447. }
  448. // dimension blob
  449. // position blog
  450. // for (var i = 0; i < amount.length; i++) {
  451. // var RSin = Math.random();
  452. // console.log('RSin',RSin);
  453. // }
  454. view.onFrame = function(event) {
  455. for (var i = 0; i <= amount.length; i++) {
  456. // all
  457. var segment = path.segments[i];
  458. var segment2 = path2.segments[i];
  459. var segment3 = path3.segments[i];
  460. var segment4 = path4.segments[i];
  461. var segment5 = path5.segments[i];
  462. var segment6 = path6.segments[i];
  463. var segment7 = path7.segments[i];
  464. var segment8 = path8.segments[i];
  465. // Size blob
  466. // Facebook
  467. var width = 350; var height = 200;
  468. // instagram
  469. var width2 = 50; var height2 = 60;
  470. // Whatsapp
  471. var width3 = 150; var height3 = 90;
  472. var width4 = 100; var height4 = 160;
  473. var width6 = 100; var height6 = 80;
  474. var width5 = 40; var height5 = 100;
  475. var width7 = 150; var height7 = 200;
  476. var width8 = 30; var height8 = 10;
  477. // vistesse de deplacement
  478. var v = 0.01;
  479. var movx = Math.sin(event.time * (v + 0.05)) * 400; var movy = Math.cos(event.time * (v + 0.02)) * 200;
  480. var movx2 = Math.sin(event.time * (v + 0.02)) * 380; var movy2 = Math.cos(event.time * (v + 0.08)) * 210;
  481. var movx3 = Math.sin(event.time * (v + 0.01)) * 360; var movy3 = Math.cos(event.time * (v + 0.01)) * 220;
  482. var movx4 = Math.sin(event.time * (v + 0.04)) * 420; var movy4 = Math.cos(event.time * (v + 0.06)) * 180;
  483. var movx5 = Math.sin(event.time * (v + 0.05)) * 440; var movy5 = Math.cos(event.time * (v + 0.05)) * 190;
  484. var movx6 = Math.sin(event.time * (v + 0.02)) * 390; var movy6 = Math.cos(event.time * (v + 0.04)) * 230;
  485. var movx8 = Math.sin(event.time * (v + 0.03)) * 410; var movy7 = Math.cos(event.time * (v + 0.03)) * 170;
  486. var movx7 = Math.sin(event.time * (v + 0.04)) * 400; var movy8 = Math.cos(event.time * (v + 0.02)) * 200;
  487. // contour blob
  488. var sinus = Math.sin(event.time * ( - 0.05) + i); var cos = Math.cos(event.time * ( - 0.05) + i);
  489. var sinus2 = Math.sin(event.time * ( 0.1) + i); var cos2 = Math.cos(event.time * ( 0.1) + i);
  490. var sinus3 = Math.sin(event.time * (0.15) + i); var cos3 = Math.cos(event.time * (0.15) + i);
  491. var sinus4 = Math.sin(event.time * (0.08) + i); var cos4 = Math.cos(event.time * (0.08) + i);
  492. var sinus5 = Math.sin(event.time * ( - 0.2) + i); var cos5 = Math.cos(event.time * ( - 0.2) + i);
  493. var sinus6 = Math.sin(event.time * (0.12) + i); var cos6 = Math.cos(event.time * (0.12) + i);
  494. var sinus7 = Math.sin(event.time * ( - 0.25) + i); var cos7 = Math.cos(event.time * ( - 0.25) + i);
  495. var sinus8 = Math.sin(event.time * (0.18) + i); var cos8 = Math.cos(event.time * (0.18) + i);
  496. var rotatex = Math.sin(event.time * Math.PI/360) + i;
  497. var rotatex2 = Math.sin(event.time * Math.PI/21) + i;
  498. var rotatex3 = Math.sin(event.time * Math.PI/360) + i;
  499. var rotatex4 = Math.sin(event.time * Math.PI/75) + i;
  500. var rotatex5 = Math.sin(event.time * Math.PI/123) + i;
  501. var rotatex6 = Math.sin(event.time * Math.PI/354) + i;
  502. var rotatex7 = Math.sin(event.time * Math.PI/76) + i;
  503. var rotatex8 = Math.sin(event.time * Math.PI/10) + i;
  504. var left = width - movx + 200; var top = height - movy + 200;
  505. var left2 = width2 - movx2 + 200; var top2 = height2 - movy2 + 50;
  506. var left3 = width3 - movx3 + 190; var top3 = height3 - movy3 + 30;
  507. var left4 = width4 - movx4 + 50; var top4 = height4 - movy4 + 90;
  508. var left5 = width5 - movx5 + 220; var top5 = height5 - movy5 + 25;
  509. var left6 = width6 - movx6 + 160; var top6 = height6 - movy6 + 150;
  510. var left7 = width7 - movx7 + 180; var top7 = height7 - movy7 + 160;
  511. var left8 = width8 - movx8 + 220; var top8 = height8 - movy8 + 200;
  512. segment.point.x = cos * width + left + 400; segment.point.y = sinus * height + top + 150;
  513. segment2.point.x = cos2 * width2 + left2 + 400; segment2.point.y = sinus2 * height2 + top2 + 150;
  514. segment3.point.x = cos3 * width3 + left3 + 400; segment3.point.y = sinus3 * height3 + top3 + 150;
  515. segment4.point.x = cos4 * width4 + left4 + 400; segment4.point.y = sinus4 * height4 + top4 + 150;
  516. segment5.point.x = cos5 * width5 + left5 + 400; segment5.point.y = sinus5 * height5 + top5 + 150;
  517. segment6.point.x = cos6 * width6 + left6 + 400; segment6.point.y = sinus6 * height6 + top6 + 150;
  518. segment7.point.x = cos7 * width7 + left7 + 400; segment7.point.y = sinus7 * height7 + top7 + 150;
  519. segment8.point.x = cos8 * width8 + left8 + 400; segment8.point.y = sinus8 * height8 + top8 + 150;
  520. // Rotate blob
  521. path.rotate(rotatex);
  522. path2.rotate(rotatex2);
  523. path3.rotate(rotatex3);
  524. path4.rotate(rotatex4);
  525. path5.rotate(rotatex5);
  526. path6.rotate(rotatex6);
  527. path7.rotate(rotatex7);
  528. path8.rotate(rotatex8);
  529. // Smooth
  530. path.smooth();
  531. path2.smooth();
  532. path3.smooth();
  533. path4.smooth();
  534. path5.smooth();
  535. path6.smooth();
  536. path7.smooth();
  537. path8.smooth();
  538. }
  539. }
  540. $("a[href^='#facebook']").click(function(){
  541. path.fillColor = 'blue';
  542. console.log('true');
  543. });
  544. $("a[href^='#twitter']").click(function(){
  545. path2.fillColor = 'red';
  546. console.log('true');
  547. });
  548. $("a[href^='#instagram']").click(function(){
  549. path.fillColor = 'pink';
  550. console.log('true');
  551. });
  552. }
  553. }
  554. $(document).ready(function() {
  555. // paperjs();
  556. // clickcanvena();
  557. clicklinkmap();
  558. mCustomScrollbar();
  559. clickhand();
  560. drag();
  561. // dragcanvas();
  562. map();
  563. clicklinkmap();
  564. // paperjs();
  565. // D3js();
  566. });