site.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. function click_link() {
  2. $link = $('#text_figli p > a');
  3. $link.on('click',function(e) {
  4. e.preventDefault();
  5. var $loader = $(this).find('.loader');
  6. var $this = $(this);
  7. $href = $this.attr("href");
  8. url = $href.split("/");
  9. page = url[1];
  10. cat = url[2];
  11. project_name = url[3];
  12. console.log(project_name);
  13. if ($this.hasClass('open')) {
  14. $this.removeClass('open');
  15. $('#item_list.'+ cat).remove();
  16. } else {
  17. $('#item_list').remove();
  18. $('.open').removeClass('open');
  19. $loader.css('display','inline-block');
  20. $.ajax({
  21. url : '/' + page + '/' + cat, // La ressource ciblée
  22. type : 'GET', // Le type de la requête HTTP
  23. dataType:'html',
  24. async: false,
  25. success: function(data) {
  26. $(data).find('#item_list').addClass(cat).insertAfter($this);
  27. $this.addClass('open');
  28. lazy();
  29. },
  30. complete: function(data) {
  31. // console.log('cat', cat);
  32. $loader.hide();
  33. click_img(e, $this, $href, url, page, cat, project_name);
  34. closeAjax();
  35. },
  36. });
  37. }
  38. });
  39. };
  40. function click_list() {
  41. var $link = $('.list-projets li > a');
  42. $link.click(function(e) {
  43. $('.sidebar-right, .sidebar-right button.hamburger').removeClass('is-active');
  44. var idthis = $(this).attr("id");
  45. var $loader = $(this).parents('#start').find('#text_figli #'+idthis+' .loader');
  46. console.log('$loader',$loader);
  47. e.preventDefault();
  48. var $this = $(this);
  49. $href = $this.attr("href");
  50. url = $href.split("/");
  51. page = url[1];
  52. cat = url[2];
  53. project_name = url[3];
  54. var $link_txt = $('#text_figli a#'+cat);
  55. var $link_item = $('#item_list.'+cat);
  56. var $link_card = $('.card > #'+project_name + ' a');
  57. if ($link_txt.hasClass('open') && $link_card.parent().hasClass('open') ) {
  58. anchor($href);
  59. } else if ($link_txt.hasClass('open')) {
  60. anchor($href);
  61. $.ajax({
  62. url : '/' + page + '/' + cat + '/' + project_name, // La ressource ciblée
  63. type : 'GET', // Le type de la requête HTTP
  64. dataType:'html',
  65. // async: false,
  66. success: function(data) {
  67. $('#item_list.'+cat+' .card-image.open #item').remove();
  68. $('#item_list.'+cat+' .card-image').removeClass('open');
  69. $(data).find('#item').addClass(cat).insertAfter($link_card);
  70. $link_card.parent().addClass('open');
  71. lazy();
  72. },
  73. complete: function(data) {
  74. marg_item(project_name);
  75. closeAjax();
  76. anchor($href);
  77. },
  78. });
  79. } else {
  80. $('#item_list').remove();
  81. $('.open').removeClass('open');
  82. $loader.css('display','inline-block');
  83. $.ajax({
  84. url : '/' + page + '/' + cat, // La ressource ciblée
  85. type : 'GET', // Le type de la requête HTTP
  86. dataType:'html',
  87. // async: false,
  88. success: function(data) {
  89. $(data).find('#item_list').addClass(cat).insertAfter($link_txt);
  90. $link_txt.addClass('open');
  91. lazy();
  92. $('.card a').click(function (e) {
  93. e.preventDefault()
  94. })
  95. click_img(e, $this, $href, url, page, cat, project_name)
  96. },
  97. complete: function(data) {
  98. // console.log('cat', cat);
  99. $loader.hide();
  100. var $link_card = $('.card > #'+project_name + ' a');
  101. setTimeout( function(){
  102. // console.log('project_name', project_name);
  103. // console.log('$link_card', $link_card);
  104. if ($link_card.hasClass('open')) {
  105. } else {
  106. anchor($href);
  107. $.ajax({
  108. url : '/' + page + '/' + cat + '/' + project_name, // La ressource ciblée
  109. type : 'GET', // Le type de la requête HTTP
  110. dataType:'html',
  111. success: function(data) {
  112. $(data).find('#item').addClass(cat).insertAfter($link_card);
  113. $link_card.parent().addClass('open');
  114. lazy();
  115. },
  116. complete: function(data) {
  117. marg_item(project_name);
  118. closeAjax();
  119. anchor($href);
  120. scrollTop();
  121. },
  122. });
  123. }
  124. }, 500);
  125. }
  126. });
  127. }
  128. });
  129. }
  130. function click_img(e, $this, $href, url, page, cat, project_name) {
  131. $('section.' + cat +' .card-image > a').click(function(e) {
  132. var $this = $(this);
  133. $href = $this.attr("href");
  134. url = $href.split("/");
  135. page = url[1];
  136. cat = url[2];
  137. project_name = url[3];
  138. var $loader = $(this).parents('.card').find('.loader');
  139. e.preventDefault();
  140. if ($this.parent().hasClass('open')) {
  141. $this.parent().removeClass('open');
  142. $($this.parent().find('#item.'+ cat)).remove();
  143. } else {
  144. $loader.css('display','inline-block');
  145. $.ajax({
  146. url : '/' + page + '/' + cat + '/' + project_name, // La ressource ciblée
  147. type : 'GET', // Le type de la requête HTTP
  148. dataType:'html',
  149. success: function(data) {
  150. $('#item_list.'+cat+' .card-image.open #item').remove();
  151. $('#item_list.'+cat+' .card-image').removeClass('open');
  152. $(data).find('#item').addClass(cat).insertAfter($this);
  153. $this.parent().addClass('open');
  154. marg_item(project_name);
  155. anchor($href);
  156. lazy();
  157. scrollTop();
  158. // ScrollReveal().reveal($('#item_list > .card'), {
  159. // duration: 1000,
  160. // distance: '10px',
  161. // });
  162. },
  163. complete:function() {
  164. closeAjax();
  165. $('.loader').hide();
  166. }
  167. });
  168. }
  169. });
  170. }
  171. function anchor($href) {
  172. var aTag = $("#text_figli a[href='"+ $href +"']");
  173. console.log(aTag);
  174. // console.log('aTag.offset()', aTag.offset().top+10);
  175. $('html,body').animate({scrollTop: aTag.offset().top - 7},'slow');
  176. }
  177. function animate() {
  178. var $item_list = $('#item_list .card > .card-image');
  179. $item_list.fadeIn( "slow" );
  180. }
  181. function marg_item(project_name) {
  182. var $item = $('.card-image#'+project_name+' #item');
  183. var $card = $item.parents('.card');
  184. var pos_card = $card.offset().left-16;
  185. $item.css('margin-left', '-'+pos_card +'px');
  186. $(window).resize(function() {
  187. var pos_card = $card.offset().left-16;
  188. $item.css('margin-left', '-'+pos_card +'px');
  189. })
  190. }
  191. function mouseHover() {
  192. $link_cat = $('#text_figli p > a');
  193. $link_cat.mouseenter(function() {
  194. link_id = $(this).attr("id");
  195. $('html').append("<div class=circle_hover ></div>");
  196. // console.log('link_id',link_id);
  197. setTimeout(function () {
  198. $('.circle_hover').addClass('open '+ link_id);
  199. }, 10);
  200. mousePos();
  201. })
  202. .mouseleave(function() {
  203. $('html').find(".circle_hover").remove();
  204. });
  205. function mousePos() {
  206. var currentMousePos = { x: 0, y: 0 };
  207. var $circle = $('.circle_hover');
  208. $(document).mousemove(function(event) {
  209. currentMousePos.x = event.pageX;
  210. currentMousePos.y = event.pageY;
  211. $circle.css('left', currentMousePos.x );
  212. $circle.css('top', currentMousePos.y );
  213. });
  214. }
  215. };
  216. function lazy() {
  217. $('img.lazy').Lazy({
  218. effect: "fadeIn",
  219. effectTime: 500,
  220. threshold: 0
  221. });
  222. }
  223. function animate_burger() {
  224. var forEach=function(t,o,r){if("[object Object]"===Object.prototype.toString.call(t))for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&o.call(r,t[c],c,t);else for(var e=0,l=t.length;l>e;e++)o.call(r,t[e],e,t)};
  225. var hamburgers = document.querySelectorAll(".hamburger");
  226. var $hamburger = $('button.hamburger');
  227. if (hamburgers.length > 0) {
  228. forEach(hamburgers, function(hamburger) {
  229. hamburger.addEventListener("click", function() {
  230. this.classList.toggle("is-active");
  231. }, false);
  232. });
  233. }
  234. $hamburger.click(function() {
  235. $('.sidebar-right').toggleClass("is-active");
  236. })
  237. }
  238. function closeAjax() {
  239. var $button = $('#item #icone_list');
  240. $button.click(function() {
  241. $(this).parent().remove();
  242. $('.card-image').removeClass("open");
  243. });
  244. }
  245. function croix() {
  246. var $link = $("#text_figli p > a");
  247. var hamburger = "<div id='icone_list'><button class='hamburger hamburger--slider is-active' type='button'><span class='hamburger-box'><span class='hamburger-inner'></span></span></button></div>"
  248. var loader = "<div class='loader'></div>"
  249. $link.append(hamburger);
  250. $link.append(loader);
  251. }
  252. function scrollTop() {
  253. var $body = $("html, body");
  254. $('#item #top').click(function() {
  255. $body.stop().animate({scrollTop:0}, 500, 'swing', function() {
  256. });
  257. })
  258. }
  259. function imgmouse() {
  260. var currentMousePos = { x: 0, y: 0 };
  261. var $list_projets = $('.list-projets');
  262. var $img = $('.list-projets .img');
  263. $list_projets.mousemove(function(e) {
  264. var pos = $list_projets.offset();
  265. currentMousePos.x = e.pageX - pos.left ;
  266. currentMousePos.y = e.pageY - pos.top;
  267. $img.css('left', currentMousePos.x );
  268. $img.css('top', currentMousePos.y );
  269. });
  270. }
  271. function scrollreveal() {
  272. var $txt = $('#text_figli p');
  273. ScrollReveal().reveal($txt, {
  274. duration: 1000,
  275. distance: '10px',
  276. });
  277. }
  278. function clickmenu() {
  279. var $menu = $('.sidebar-right button');
  280. $menu.click(function() {
  281. $('#text_figli').toggleClass('hidden');
  282. $('html, body').toggleClass('hidden');
  283. });
  284. var $list_projetsA = $('.list-projets .container a');
  285. $list_projetsA.click(function() {
  286. $('#text_figli').toggleClass('hidden');
  287. $('html, body').toggleClass('hidden');
  288. });
  289. }
  290. function scrollcustom() {
  291. $(window).on("load",function(){
  292. // $(".sidebar-right").mCustomScrollbar({
  293. // scrollbarPosition: "outside",
  294. // axis:"y",
  295. // });
  296. //
  297. // $("body").mCustomScrollbar({
  298. // scrollbarPosition: "outside",
  299. // axis:"y",
  300. // });
  301. });
  302. }
  303. $(document).ready(function($){
  304. scrollcustom();
  305. scrollreveal();
  306. click_link();
  307. click_list();
  308. mouseHover();
  309. animate_burger();
  310. croix();
  311. imgmouse();
  312. clickmenu();
  313. });