mirror of
https://github.com/Tencent/weui.git
synced 2026-03-13 08:02:03 +08:00
104 lines
3.2 KiB
JavaScript
104 lines
3.2 KiB
JavaScript
/**
|
||
* Created by jfengjiang on 2015/9/11.
|
||
*/
|
||
|
||
$(function () {
|
||
// page stack
|
||
var stack = [];
|
||
var $container = $('.js_container');
|
||
$container.on('click', '.js_cell[data-id]', function () {
|
||
var id = $(this).data('id');
|
||
go(id);
|
||
});
|
||
|
||
// location.hash = '#hash1' 和点击后退都会触发`hashchange`,这个demo页面只关心后退
|
||
$(window).on('hashchange', function (e) {
|
||
if (/#.+/gi.test(e.newURL)) {
|
||
return;
|
||
}
|
||
var $top = stack.pop();
|
||
if (!$top) {
|
||
return;
|
||
}
|
||
$top.addClass('slideOut').on('animationend', function () {
|
||
$top.remove();
|
||
}).on('webkitAnimationEnd', function () {
|
||
$top.remove();
|
||
});
|
||
});
|
||
|
||
function go(id){
|
||
var $tpl = $($('#tpl_' + id).html()).addClass('slideIn').addClass(id);
|
||
$container.append($tpl);
|
||
stack.push($tpl);
|
||
// why not use `history.pushState`, https://github.com/weui/weui/issues/26
|
||
//history.pushState({id: id}, '', '#' + id);
|
||
location.hash = '#' + id;
|
||
|
||
$($tpl).on('webkitAnimationEnd', function (){
|
||
$(this).removeClass('slideIn');
|
||
}).on('animationend', function (){
|
||
$(this).removeClass('slideIn');
|
||
});
|
||
// tooltips
|
||
if (id == 'cell') {
|
||
$('.js_tooltips').show();
|
||
setTimeout(function (){
|
||
$('.js_tooltips').hide();
|
||
}, 3000);
|
||
}
|
||
}
|
||
|
||
if (/#.*/gi.test(location.href)) {
|
||
go(location.hash.slice(1));
|
||
}
|
||
|
||
// toast
|
||
$container.on('click', '#showToast', function () {
|
||
$('#toast').show();
|
||
setTimeout(function () {
|
||
$('#toast').hide();
|
||
}, 5000);
|
||
});
|
||
$container.on('click', '#showLoadingToast', function () {
|
||
$('#loadingToast').show();
|
||
setTimeout(function () {
|
||
$('#loadingToast').hide();
|
||
}, 5000);
|
||
});
|
||
|
||
$container.on('click', '#showDialog1', function () {
|
||
$('#dialog1').show();
|
||
$('#dialog1').find('.weui_btn_dialog').on('click', function () {
|
||
$('#dialog1').hide();
|
||
});
|
||
});
|
||
$container.on('click', '#showDialog2', function () {
|
||
$('#dialog2').show();
|
||
$('#dialog2').find('.weui_btn_dialog').on('click', function () {
|
||
$('#dialog2').hide();
|
||
});
|
||
});
|
||
|
||
function hideActionSheet(weuiActionsheet, mask) {
|
||
weuiActionsheet.removeClass('weui_actionsheet_toggle');
|
||
mask.removeClass('weui_fade_toggle');
|
||
weuiActionsheet.on('transitionend', function () {
|
||
mask.hide();
|
||
}).on('webkitTransitionEnd', function () {
|
||
mask.hide();
|
||
})
|
||
}
|
||
$container.on('click','#showActionSheet', function () {
|
||
var mask = $('#mask');
|
||
var weuiActionsheet = $('#weui_actionsheet');
|
||
weuiActionsheet.addClass('weui_actionsheet_toggle');
|
||
mask.show().addClass('weui_fade_toggle').click(function () {
|
||
hideActionSheet(weuiActionsheet, mask);
|
||
});
|
||
$('#actionsheet_cancel').click(function () {
|
||
hideActionSheet(weuiActionsheet, mask);
|
||
});
|
||
weuiActionsheet.unbind('transitionend').unbind('webkitTransitionEnd');
|
||
});
|
||
}); |