mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-25 04:07:17 +08:00
61 lines
1.9 KiB
JavaScript
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);
|
|
}); |