1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-25 04:07:17 +08:00
2019-12-18 16:01:17 +08:00

61 lines
1.9 KiB
JavaScript

/**
Dropdown
**/
layui.define(['jquery'], function (exports) {
var MOD_NAME = 'dropdown',
CLASS_NAME = '.layui-dropdown',
$ = layui.jquery;
var dropdown = {
"v": '1.0.0'
};
//渲染
dropdown.render = function (opt) {
$(CLASS_NAME).each(function (i, elem) {
var jqelem = $(elem);
var ulBox = jqelem.children('ul');
var timer = '';
ulBox.addClass('layui-anim layui-anim-upbit');
var event = jqelem.hasClass('dropdown-click') ? 'click' : 'mouseenter';
jqelem.on(event, function (e) {
var disabled = jqelem.hasClass('dropdown-disabled');
if (disabled) {
return false
}
clearTimeout(timer);
//FIX 定位
var overHeight = (jqelem.offset().top + jqelem.height() + ulBox.outerHeight() - $(window).scrollTop()) > $(window).height();
if (overHeight) {
ulBox.css({"top": "auto", "bottom": "100%"});
} else {
ulBox.css({"top": "100%", "bottom": "auto"});
}
ulBox.show();
});
if (event == 'mouseenter') {
jqelem.on("mouseleave", function (e) {
timer = setTimeout(function () {
ulBox.hide();
}, 300);
})
} else {
$(document).on("mouseup", function (e) {
var userSet_con = jqelem;
if (!userSet_con.is(e.target) && userSet_con.has(e.target).length === 0) {
ulBox.hide()
}
});
}
})
};
//自动完成渲染
dropdown.render();
//输出接口
exports(MOD_NAME, dropdown);
});