106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
!function ($) {
 | 
						|
	$.fn.h6Size = function () {
 | 
						|
		$h6 = this;
 | 
						|
		$h6.each(function(i) {
 | 
						|
			var W = $(this).width()-$(this).find('.toggle-control').width()-$(this).children('b').outerWidth(true)-5;
 | 
						|
			$(this).children('span').width(W);
 | 
						|
		});
 | 
						|
	};
 | 
						|
}(window.jQuery);
 | 
						|
 | 
						|
$(function() {
 | 
						|
	// $('.toggle-check').togglebox();
 | 
						|
	var $mapTree = $('.map-tree'),
 | 
						|
		$mapTreeItem = $mapTree.children('li'),
 | 
						|
		$mapItemH6 = $mapTree.find('h6');
 | 
						|
	var mapItem = function(w) {
 | 
						|
		var WinW = $(window).width(),
 | 
						|
			W = null;
 | 
						|
		if(WinW < 767) {
 | 
						|
			W = w;
 | 
						|
		} else {
 | 
						|
			W = (w-64)/2;
 | 
						|
		};
 | 
						|
		return W;
 | 
						|
	};
 | 
						|
	$('#map-tree-language').css('margin-left',ml = function() {
 | 
						|
		var W = null;
 | 
						|
		$(this).children('li').map(function(i, v) {
 | 
						|
			W -= $(v).width()/2;
 | 
						|
		});
 | 
						|
		return W;
 | 
						|
	});
 | 
						|
	$mapTree.each(function(i) {
 | 
						|
		$('.line').append("<ul class='line"+(i+1)+" fade'/>");
 | 
						|
		if(i < 1) {
 | 
						|
			$('.line'+(i+1)).addClass("in active");
 | 
						|
		};
 | 
						|
		$(this).children('li').each(function(j) {
 | 
						|
			$('.line').children('.line'+(i+1)).append("<li/>");
 | 
						|
		});
 | 
						|
	});
 | 
						|
	$mapTreeItem.children('h6').find('span').before(function() {
 | 
						|
		var I = ($(this).parents('li').index()+1);
 | 
						|
		if (I < 10) {
 | 
						|
			I = "0"+I;
 | 
						|
		}
 | 
						|
		return "<b>" + I + "</b>";
 | 
						|
	});
 | 
						|
	$mapTreeItem.width(mapItem($mapTree.width()))
 | 
						|
	$mapItemH6.h6Size();
 | 
						|
 | 
						|
	$mapTree.each(function() {
 | 
						|
		$(this).masonry({
 | 
						|
			itemSelector: '.map-tree > li',
 | 
						|
			gutter: 60,
 | 
						|
		});
 | 
						|
		$(this).masonry('on', 'layoutComplete', function(msnryInstance, laidOutItems) {
 | 
						|
			// console.log(msnryInstance.element)
 | 
						|
			var element = msnryInstance.element;
 | 
						|
			$(element).children('li').children('h6').each(function(i) {
 | 
						|
				$('ul.line'+$(element).index()).children('li').eq(i).css('top', ($(this).offset().top-$('ul.line'+$(element).index()).offset().top)+15);
 | 
						|
			});
 | 
						|
		});
 | 
						|
	});
 | 
						|
	$mapTree.each(function(j) {
 | 
						|
		$(this).children('li').children('h6').each(function(i) {
 | 
						|
			$('ul.line'+(j+1)).children('li').eq(i).css('top',($(this).offset().top-$('ul.line'+(j+1)).offset().top)+15);
 | 
						|
		});
 | 
						|
		$(this).children('li').on('mouseenter', function() {
 | 
						|
			$('ul.line'+(j+1)).children('li').eq($(this).index()).css({
 | 
						|
				'background-color': '#0088cc',
 | 
						|
				'z-index': 1,
 | 
						|
			})
 | 
						|
		});
 | 
						|
		$(this).children('li').on('mouseleave', function() {
 | 
						|
			$('ul.line'+(j+1)).children('li').eq($(this).index()).css({
 | 
						|
				'background-color': '#DBDBDB',
 | 
						|
				'z-index': 0,
 | 
						|
			})
 | 
						|
		});
 | 
						|
	});
 | 
						|
	$('#map-tree-language a[data-toggle="tab"]').on('shown', function (e) {
 | 
						|
		var target = $(e.target).attr('href');
 | 
						|
		// console.log($(target).index())
 | 
						|
		$('ul.line'+$(target).index()).addClass("in active").siblings().removeClass("in active");
 | 
						|
		$mapTreeItem.width(mapItem($(target).width()))
 | 
						|
		// $mapTree.map(function(i,v){
 | 
						|
		// 	console.log(v.id +" : " +$(v).width() )
 | 
						|
		// })
 | 
						|
		$mapItemH6.h6Size();
 | 
						|
		$(target).masonry({
 | 
						|
			itemSelector: '.map-tree > li',
 | 
						|
			gutter: 60,
 | 
						|
		});
 | 
						|
	});
 | 
						|
	$(window).resize(function() {
 | 
						|
		var W = null;
 | 
						|
		$mapTree.map(function(i,v){
 | 
						|
			if($(v).width() > 0) {
 | 
						|
				W = $(v).width();
 | 
						|
			};
 | 
						|
		});
 | 
						|
		$mapTreeItem.width(mapItem(W));
 | 
						|
		$mapItemH6.h6Size();
 | 
						|
	});
 | 
						|
}); |