You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

94 lines
2.4 KiB

/*!
* remark (http://getbootstrapadmin.com/remark)
* Copyright 2016 amazingsurge
* Licensed under the Themeforest Standard Licenses
*/
$.components.register("verticalTab", {
mode: "init",
init: function(context) {
if (!$.fn.matchHeight) return;
$('.nav-tabs-vertical', context).each(function() {
$(this).children().matchHeight();
});
}
});
$.components.register("horizontalTab", {
mode: "init",
init: function(context) {
if (!$.fn.responsiveHorizontalTabs) return;
$('.nav-tabs-horizontal', context).responsiveHorizontalTabs();
}
});
$.components.register("navTabsLine", {
mode: "init",
defaults: {
speed: '0.5s, 1s',
animate: 'cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1)',
tpl: function() {
return '<li class="nav-tabs-autoline"></li>';
}
},
init: function(context) {
var defaults = $.components.getDefaults('navTabsLine');
$('.nav-tabs-line', context).each(function() {
var $this = $(this);
var options = $.extend({}, defaults, $this.data());
var $parent = $this.parent();
var $active = $this.find('.active');
var $autoLineTpl = $(options.tpl()).css({
"-webkit-transition-duration": options.speed,
"transition-duration": options.speed,
"-webkit-transition-timing-function": options.animate,
"transition-timing-function": options.animate
});
$autoLineTpl.appendTo($this);
var horizontalLine = function($this) {
var left = $this.position().left;
var lineWidth = $this.outerWidth();
$autoLineTpl.css({
"left": left,
"width": lineWidth
});
};
var verticalLine = function($this) {
var top = $this.position().top;
var lineHeight = $this.outerHeight();
$autoLineTpl.css({
"top": top,
"height": lineHeight
});
};
var change = function($this) {
if ($parent.hasClass('nav-tabs-vertical')) {
verticalLine($this);
} else {
horizontalLine($this);
}
};
$this.on('shown.bs.tab', 'a[data-toggle="tab"]', function() {
var $li = $(this).parent(),
$ul = $li.parent();
if ($ul.hasClass('dropdown-menu')) {
change($ul.parent());
} else {
change($(this).parent());
}
});
change($active);
});
}
});