script.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. function gestionarray() {
  2. // dyn_data.split();
  3. console.log(dyn_data.mappoints[1].id);
  4. $("#page").addClass(dyn_data.mappoints[1].id);
  5. }
  6. function map() {
  7. var mymap = L.map('mapid').setView([48.866667, 2.333333], 14);
  8. L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
  9. maxZoom: 18,
  10. attribution: '<a href="https://www.openstreetmap.org/"></a>'
  11. + '<a href="https://creativecommons.org/licenses/by-sa/2.0/"></a>'
  12. + '<a href="https://www.mapbox.com/"></a>',
  13. id: 'mapbox.streets'
  14. }).addTo(mymap);
  15. var LeafIcon = L.Icon.extend({
  16. options: {
  17. iconSize: [50, 50],
  18. iconAnchor: [25, 25],
  19. }
  20. });
  21. var greenIcon = new LeafIcon({iconUrl: 'user/themes/r2c/images/handler.svg'})
  22. for (var i = 0; i < dyn_data.mappoints.length; i++) {
  23. L.marker([dyn_data.mappoints[i].lat, dyn_data.mappoints[i].long], {icon: greenIcon}).bindPopup(dyn_data.mappoints[i].title).addTo(mymap);
  24. }
  25. };
  26. function scrollbar(){
  27. $(window).on("load",function(){
  28. $("#start > div > div").mCustomScrollbar({
  29. axis:"y",
  30. setTop: 0,
  31. });
  32. });
  33. }
  34. function clickhand(){
  35. $(".handler").on("mousedown", function (e) {
  36. e.preventDefault();
  37. $(this).addClass("mouseDown");
  38. }).on("mouseup", function () {
  39. $(this).removeClass("mouseDown");
  40. });
  41. };
  42. function drag() {
  43. var $hand = $( ".handler" );
  44. var $hand1 = $( ".hand1" );
  45. var $hand2 = $( ".hand2" );
  46. var p = 100;
  47. //marge
  48. var mrg = 1;
  49. // Blocs
  50. // find
  51. var $recits = $hand.parents('#page').find('#recits');
  52. var $itw = $hand.parents('#page').find("#interviews");
  53. var $img = $hand.parents('#page').find("#images");
  54. var $stmp = $hand.parents('#page').find("#streetmap");
  55. var $rs = $hand.parents('#page').find("#reseaux-sociaux");
  56. var $links = $hand.parents('#page').find("#links");
  57. // handler
  58. // dimension
  59. var $Whand = parseFloat($hand.outerWidth(true));
  60. var $Hhand = parseFloat($hand.outerHeight(true));
  61. $hand1.draggable({
  62. containment: "#start",
  63. scroll: false,
  64. drag: function(event, ui){
  65. var oW = parseFloat($("#start").outerWidth(true));
  66. var oH = parseFloat($("#start").outerHeight(true));
  67. var ajustH = (100 * ( 25/ oH )) + "%";
  68. var stophand = (0.8 * oW) - 130;
  69. ui.position.left = Math.max( 200, ui.position.left );
  70. ui.position.left = Math.min( stophand, ui.position.left );
  71. // handler
  72. // position
  73. var pos = $hand1.position();
  74. var pos1 = $hand2.position();
  75. var pos11 = parseFloat(pos1.left) + 25;
  76. // center handler
  77. var ajustW = $Whand / 2;
  78. var ajustH = $Hhand / 2;
  79. // position XY
  80. var xPos = ( p * parseFloat( ((ui.position.left)) / oW) ) + "%" ;
  81. var yPos = ( p * parseFloat( ((ui.position.top)) / oH ) ) + "%" ;
  82. var xPos2 = ( p * parseFloat( ((ui.position.left ) ) / oW) ) + "%";
  83. var yPos2 = ( p * parseFloat( ((ui.position.top ) ) / oH) ) + "%" ;
  84. var xPos3 = ( p * parseFloat( (pos1.left + ajustW) / oW) ) + "%";
  85. var yPos3 = ( p * parseFloat( (ui.position.top ) / oH) ) + "%" ;
  86. //handler2
  87. var $handler2 = $(this).parent().find('.hand2');
  88. var PosHand = ( parseFloat(p * parseFloat((pos11 - 25) / oW)) - parseFloat(p * parseFloat( (ui.position.left) / oW)) ) + "%";
  89. // application dimension
  90. $hand2.css({
  91. 'top': yPos3,
  92. })
  93. $recits.css({
  94. "width": xPos,
  95. "height": yPos,
  96. "left": "-2px",
  97. })
  98. $itw.css({
  99. "left":xPos2,
  100. "width": PosHand,
  101. "height": yPos,
  102. "min-width": "200px"
  103. })
  104. $img.css({
  105. "height": yPos,
  106. "min-width": "200px",
  107. })
  108. $stmp.css({
  109. "width":xPos,
  110. "top": yPos2,
  111. "bottom":"1px",
  112. "height": 'auto',
  113. })
  114. $rs.css({
  115. "top": yPos2,
  116. "left":xPos2,
  117. "width":PosHand,
  118. "bottom":"1px",
  119. "height": 'auto',
  120. })
  121. $links.css({
  122. "top": yPos2,
  123. "bottom":0,
  124. "height": 'auto',
  125. })
  126. // if itw < 200
  127. var testPourcent = parseFloat( p * parseFloat(ui.position.left + 238) / oW ) + "%";
  128. var img200 = parseFloat( p * parseFloat( (oW - (pos11 - 25 )) / oW) ) + "%" ;
  129. if ( $itw.width() < 200) {
  130. $img.css({
  131. "width": img200,
  132. })
  133. $links.css({
  134. "width": img200,
  135. })
  136. $hand2.css({
  137. 'left':testPourcent,
  138. })
  139. } else {}
  140. },
  141. stop: function( event, ui ) {
  142. var parent = $(this).parents('#start');
  143. $(this).css({
  144. left:parseInt($(this).css('left'))/parent.width()*100+"%",
  145. top: parseInt($(this).css('top'))/parent.height()*100+"%",
  146. });
  147. },
  148. });
  149. $hand2.draggable({
  150. containment: "#start",
  151. scroll: false,
  152. drag: function(event, ui){
  153. var oW = parseFloat($("#start").outerWidth(true));
  154. var oH = parseFloat($("#start").outerHeight(true));
  155. var stophand = (oW - 200) - 50;
  156. console.log(stophand)
  157. ui.position.left = Math.max( 400, ui.position.left );
  158. ui.position.left = Math.min( stophand, ui.position.left );
  159. // handler
  160. // position
  161. var pos = $hand1.position();
  162. var pos1 = $hand2.position();
  163. var pos11 = parseFloat(pos.left) + 25;
  164. // center
  165. var ajustW = $Whand / 2 - 1;
  166. var ajustH = $Hhand / 2 + 1;
  167. var ajustW200 = $Whand / 2 + 6;
  168. var ajustW2 = $Whand / 2 + 1;
  169. var ajustH2 = $Hhand / 2 + 1;
  170. var ajustW3 = $Whand / 2 + 3;
  171. var ajustH3 = $Hhand / 2 + 1;
  172. // position XY
  173. var xPos = ( p * parseFloat( ( oW - (ui.position.left) ) / oW) + "%" );
  174. var yPos = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  175. var xPos2 = ( p * parseFloat( ( oW - (ui.position.left) ) / oW ) ) + "%";
  176. var yPos2 = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  177. // var xPos3 = ( p * parseFloat( (oW - (pos.left)) / oW ) ) + "%";
  178. var xPos3 = ( p * parseFloat( (pos1.left + ajustW) / oW) ) + "%";
  179. var yPos3 = ( p * parseFloat( (ui.position.top ) / oH ) ) + "%" ;
  180. //handler2
  181. var $handler2 = $(this).parent().find('.hand2');
  182. var PosHand = (parseFloat(xPos3) - parseFloat(xPos)) + "%";
  183. var PosHand1 = ( parseFloat(p * parseFloat( (ui.position.left) / oW)) - parseFloat(p * parseFloat((pos11 - 25) / oW))) + "%";
  184. // application dimension
  185. $hand1.css({
  186. 'top': yPos3,
  187. })
  188. $recits.css({
  189. "height": yPos,
  190. })
  191. $itw.css({
  192. "width": PosHand1,
  193. "height": yPos,
  194. })
  195. $img.css({
  196. "width": xPos,
  197. "height": yPos,
  198. })
  199. $stmp.css({
  200. "top": yPos2,
  201. "bottom":"1px",
  202. "height": 'auto',
  203. })
  204. $rs.css({
  205. "top": yPos2,
  206. "width":PosHand1,
  207. "bottom":"1px",
  208. "height": 'auto',
  209. })
  210. $links.css({
  211. "width":xPos,
  212. "top": yPos2,
  213. "bottom":0,
  214. "height": 'auto',
  215. })
  216. // if itw < 200
  217. var test = ui.position.left - 200;
  218. var testPourcent = ( p * parseFloat(test) / oW ) + "%";
  219. var img200 = ( p * parseFloat( ((pos.left) ) / oW) + "%" );
  220. if ( $itw.width() < 200) {
  221. $recits.css({
  222. "width": img200,
  223. })
  224. $stmp.css({
  225. "width": img200,
  226. })
  227. $itw.css({
  228. "left": img200,
  229. })
  230. $rs.css({
  231. "left": img200,
  232. })
  233. $hand1.css({
  234. 'left':test,
  235. })
  236. }else {
  237. }
  238. },
  239. stop: function( event, ui ) {
  240. var parent = $(this).parents("#start");
  241. $(this).css({
  242. left:parseInt($(this).css('left'))/parent.width()*100+"%",
  243. top: parseInt($(this).css('top'))/parent.height()*100+"%",
  244. });
  245. },
  246. });
  247. };
  248. function dragcanvas() {
  249. var $links = $('#links canvas');
  250. var $reseau = $('#reseaux-sociaux svg')
  251. $links.draggable({
  252. // containment:"#start",
  253. scroll: false
  254. });
  255. $reseau.draggable({
  256. scroll: false
  257. });
  258. }
  259. $(document).ready(function() {
  260. // gestionarray();
  261. clickhand();
  262. drag();
  263. dragcanvas();
  264. map();
  265. // scrollbar();
  266. });