92 lines
2.7 KiB
JavaScript
92 lines
2.7 KiB
JavaScript
$(function() {
|
|
var $btn_side = $('#btn_side'),
|
|
$side_menu = $('#side_menu'),
|
|
$side_wr = $('#side_menu .side_wr'),
|
|
side_obj = { my : {} },
|
|
is_trans_sup = supportsTransitions();
|
|
|
|
$side_wr.css({'right':'-250px'}); //초기화
|
|
|
|
side_obj.destory = function(){
|
|
if ( ! is_trans_sup ) return;
|
|
side_obj.my.destroy();
|
|
}
|
|
side_obj.refresh = function(){
|
|
if ( ! is_trans_sup ) return;
|
|
side_obj.my.refresh();
|
|
}
|
|
|
|
function iscroll_loaded() {
|
|
if ( is_trans_sup ){
|
|
$side_wr.removeClass('add_side_wr');
|
|
side_obj.my = new IScroll('#isroll_wrap', { bounceTime : 400, mouseWheel: true, click: true, hScroll:false });
|
|
}
|
|
}
|
|
|
|
$('#isroll_wrap').on('touchmove', function(e){
|
|
e.preventDefault();
|
|
});
|
|
|
|
function supportsTransitions() {
|
|
var b = document.body || document.documentElement,
|
|
s = b.style,
|
|
p = 'transition';
|
|
|
|
if (typeof s[p] === 'string') { return true; }
|
|
|
|
// Tests for vendor specific prop
|
|
var v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms'];
|
|
p = p.charAt(0).toUpperCase() + p.substr(1);
|
|
|
|
for (var i = 0; i < v.length; i++) {
|
|
if (typeof s[v[i] + p] === 'string') { return true; }
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
$btn_side.on('click', function() {
|
|
if ( ! $(this).data('toggle_enable')) {
|
|
$(this).data('toggle_enable', true);
|
|
$side_menu.show();
|
|
$side_wr.animate({'right': '0px'}, 200, function(){
|
|
height_update($(this));
|
|
iscroll_loaded();
|
|
});
|
|
} else {
|
|
remove_side_data();
|
|
}
|
|
});
|
|
|
|
function height_update(target){
|
|
var side_wr_height = target.height();
|
|
$('body').css({'min-height': side_wr_height + 'px'});
|
|
}
|
|
|
|
function remove_side_data(){
|
|
$btn_side.data('toggle_enable', false);
|
|
$side_wr.animate({'right': '-250px'}, 160, function(){
|
|
$side_menu.hide();
|
|
$('body').css({'min-height':''});
|
|
side_obj.my.destroy();
|
|
});
|
|
}
|
|
|
|
$('#side_menu .side_wr').on('clickoutside', function(e){
|
|
if ( ! $(e.target).closest('#btn_side').length && $btn_side.data('toggle_enable')){
|
|
remove_side_data();
|
|
}
|
|
});
|
|
|
|
var clickEventType= 'ontouchend' in document ? 'touchend' : 'click';
|
|
|
|
$(document).on(clickEventType, '.subopen', function(){
|
|
$submenu = $('.drop-downorder-' + $(this).attr('data-menu-order'));
|
|
$submenu.toggle(function(){
|
|
height_update($side_wr);
|
|
side_obj.my.refresh();
|
|
});
|
|
});
|
|
|
|
});
|