| | |
| | | /** 下拉菜单模块 date:2020-05-04 License By http://easyweb.vip */ |
| | | layui.define(['jquery'], function (exports) { |
| | | var $ = layui.jquery; |
| | | var openClass = 'dropdown-open'; |
| | | var disableClass = 'dropdown-disabled'; |
| | | var noScrollClass = 'dropdown-no-scroll'; |
| | | var shadeClass = 'dropdown-menu-shade'; |
| | | var dropdownClass = 'dropdown-menu'; |
| | | var dropNavClass = 'dropdown-menu-nav'; |
| | | var hoverClass = 'dropdown-hover'; |
| | | var fixedClass = 'fixed'; |
| | | var noShadeClass = 'no-shade'; |
| | | var animClass = 'layui-anim layui-anim-upbit'; |
| | | var popAnimClass = 'layui-anim layui-anim-fadein'; |
| | | var dropDirect = ['bottom-left', 'bottom-right', 'bottom-center', 'top-left', 'top-right', 'top-center', 'left-top', 'left-bottom', 'left-center', 'right-top', 'right-bottom', 'right-center']; |
| | | if ($('#ew-css-dropdown').length <= 0) { |
| | | layui.link(layui.cache.base + 'dropdown/dropdown.css'); |
| | | } |
| | | |
| | | var dropdown = { |
| | | // 绑定事件 |
| | | init: function () { |
| | | // 点击触发 |
| | | $(document).off('click.dropdown').on('click.dropdown', '.' + dropdownClass + '>*:first-child', function (event) { |
| | | var $drop = $(this).parent(); |
| | | if (!$drop.hasClass(hoverClass)) { |
| | | if ($drop.hasClass(openClass)) { |
| | | $drop.removeClass(openClass); |
| | | } else { |
| | | dropdown.hideAll(); |
| | | dropdown.show($(this).parent().find('.' + dropNavClass)); |
| | | } |
| | | } |
| | | event.stopPropagation(); |
| | | }); |
| | | // 点击任何位置关闭所有 |
| | | $(document).off('click.dropHide').on('click.dropHide', function (event) { |
| | | dropdown.hideAll(); |
| | | }); |
| | | // 点击下拉菜单内容部分不关闭 |
| | | $(document).off('click.dropNav').on('click.dropNav', '.' + dropNavClass, function (event) { |
| | | event.stopPropagation(); |
| | | }); |
| | | // hover触发 |
| | | var timer, lastDrop, hoverSelector = '.' + dropdownClass + '.' + hoverClass; |
| | | $(document).off('mouseenter.dropdown').on('mouseenter.dropdown', hoverSelector, function (event) { |
| | | if (lastDrop && lastDrop == event.currentTarget) { |
| | | clearTimeout(timer); |
| | | } |
| | | dropdown.show($(this).find('.' + dropNavClass)); |
| | | }); |
| | | $(document).off('mouseleave.dropdown').on('mouseleave.dropdown', hoverSelector, function (event) { |
| | | lastDrop = event.currentTarget; |
| | | timer = setTimeout(function () { |
| | | $(event.currentTarget).removeClass(openClass); |
| | | }, 300); |
| | | }); |
| | | // 分离式绑定 |
| | | $(document).off('click.dropStand').on('click.dropStand', '[data-dropdown]', function (event) { |
| | | dropdown.showFixed($(this)); |
| | | event.stopPropagation(); |
| | | }); |
| | | // 无限级子菜单 |
| | | var hoverNavSelector = '.' + dropNavClass + ' li'; |
| | | $(document).off('mouseenter.dropdownNav').on('mouseenter.dropdownNav', hoverNavSelector, function (event) { |
| | | $(this).children('.dropdown-menu-nav-child').addClass(animClass); |
| | | $(this).addClass('active'); |
| | | }); |
| | | $(document).off('mouseleave.dropdownNav').on('mouseleave.dropdownNav', hoverNavSelector, function (event) { |
| | | $(this).removeClass('active'); |
| | | $(this).find('li.active').removeClass('active'); |
| | | }); |
| | | // 气泡确认弹窗 |
| | | $(document).off('click.popconfirm').on('click.popconfirm', '.dropdown-menu-nav [btn-cancel]', function (event) { |
| | | dropdown.hideAll(); |
| | | event.stopPropagation(); |
| | | }); |
| | | }, |
| | | // 点击菜单关闭 |
| | | openClickNavClose: function () { |
| | | $(document).off('click.dropNavA').on('click.dropNavA', '.' + dropNavClass + '>li>a', function (event) { |
| | | dropdown.hideAll(); |
| | | $(this).parentsUntil('.' + dropdownClass).last().parent().removeClass(openClass); |
| | | event.stopPropagation(); |
| | | }); |
| | | }, |
| | | // 关闭所有 |
| | | hideAll: function () { |
| | | $('.' + dropdownClass).removeClass(openClass); |
| | | // 隐藏分离式菜单 |
| | | $('.' + dropNavClass + '.' + fixedClass).addClass('layui-hide'); // 隐藏分离式菜单 |
| | | $('.' + shadeClass).remove(); // 移除遮罩层 |
| | | $('body').removeClass(noScrollClass); // 移除禁止页面滚动 |
| | | $('.dropdown-fix-parent').removeClass('dropdown-fix-parent'); |
| | | $('[data-dropdown]').removeClass(openClass); |
| | | }, |
| | | // 展开非分离式下拉菜单 |
| | | show: function ($dropNav) { |
| | | if ($dropNav && $dropNav.length > 0 && !$dropNav.hasClass(disableClass)) { |
| | | if ($dropNav.hasClass('dropdown-popconfirm')) { |
| | | $dropNav.removeClass(animClass); |
| | | $dropNav.addClass(popAnimClass); |
| | | } else { |
| | | $dropNav.removeClass(popAnimClass); |
| | | $dropNav.addClass(animClass); |
| | | } |
| | | var position; // 获取位置 |
| | | for (var i = 0; i < dropDirect.length; i++) { |
| | | if ($dropNav.hasClass('dropdown-' + dropDirect[i])) { |
| | | position = dropDirect[i]; |
| | | break; |
| | | } |
| | | } |
| | | if (!position) { // 没有设置位置添加默认位置 |
| | | $dropNav.addClass('dropdown-' + dropDirect[0]); |
| | | position = dropDirect[0]; |
| | | } |
| | | dropdown.forCenter($dropNav, position); |
| | | $dropNav.parent('.' + dropdownClass).addClass(openClass); |
| | | return position; |
| | | } |
| | | return false; |
| | | }, |
| | | // 展开分离式菜单 |
| | | showFixed: function ($trigger) { |
| | | var $dropNav = $($trigger.data('dropdown')), position; |
| | | if (!$dropNav.hasClass('layui-hide')) { |
| | | dropdown.hideAll(); // 已经展开则隐藏 |
| | | return; |
| | | } |
| | | dropdown.hideAll(); // 已经展开则隐藏 |
| | | position = dropdown.show($dropNav); // 获取弹出位置 |
| | | if (position) { |
| | | $dropNav.addClass(fixedClass); // 设置为固定定位 |
| | | $dropNav.removeClass('layui-hide'); // 显示下拉菜单 |
| | | var topLeft = dropdown.getTopLeft($trigger, $dropNav, position); // 计算坐标 |
| | | topLeft = dropdown.checkPosition($dropNav, $trigger, position, topLeft); // 是否溢出屏幕 |
| | | $dropNav.css(topLeft); // 设置坐标 |
| | | $('body').addClass(noScrollClass); // 禁止页面滚动 |
| | | var hideShade = ($trigger.attr('no-shade') == 'true'); // 是否隐藏遮罩层 |
| | | $('body').append('<div class="' + (hideShade ? (shadeClass + ' ' + noShadeClass) : shadeClass) + ' layui-anim layui-anim-fadein"></div>'); // 添加遮罩层 |
| | | // 重置父元素z-index |
| | | $trigger.parentsUntil('body').each(function () { |
| | | var zIndex = $(this).css('z-index'); |
| | | if (/[0-9]+/.test(zIndex)) { |
| | | $(this).addClass('dropdown-fix-parent'); |
| | | } |
| | | }); |
| | | $trigger.addClass(openClass); |
| | | } |
| | | }, |
| | | // 解决绝对定位因动画导致平移失效 |
| | | forCenter: function ($dropNav, position) { |
| | | if (!$dropNav.hasClass(fixedClass)) { |
| | | var wTrigger = $dropNav.parent().outerWidth(), hTrigger = $dropNav.parent().outerHeight(); |
| | | var wDrop = $dropNav.outerWidth(), hDrop = $dropNav.outerHeight(); |
| | | var pParts = position.split('-'), dropSide = pParts[0], dropPosition = pParts[1]; // 显示方向 |
| | | if ((dropSide == 'top' || dropSide == 'bottom') && dropPosition == 'center') { |
| | | $dropNav.css('left', (wTrigger - wDrop) / 2); |
| | | } |
| | | if ((dropSide == 'left' || dropSide == 'right') && dropPosition == 'center') { |
| | | $dropNav.css('top', (hTrigger - hDrop) / 2); |
| | | } |
| | | } |
| | | }, |
| | | // 计算固定定位坐标 |
| | | getTopLeft: function ($trigger, $dropdown, position) { |
| | | var widthTrigger = $trigger.outerWidth(); |
| | | var heightTrigger = $trigger.outerHeight(); |
| | | var widthDropdown = $dropdown.outerWidth(); |
| | | var heightDropdown = $dropdown.outerHeight(); |
| | | var topTrigger = $trigger.offset().top - $(document).scrollTop(); |
| | | var leftTrigger = $trigger.offset().left; |
| | | var rightTrigger = leftTrigger + widthTrigger; |
| | | var top = 0, left = 0; |
| | | var positionParts = position.split('-'); |
| | | var anchorSide = positionParts[0]; // 箭头位置 |
| | | var anchorPosition = positionParts[1]; // 箭头方向 |
| | | if (anchorSide == 'top' || anchorSide == 'bottom') { |
| | | heightDropdown += 8; // 加上margin距离 |
| | | switch (anchorPosition) { |
| | | case 'left': |
| | | left = leftTrigger; |
| | | break; |
| | | case 'center': |
| | | left = leftTrigger - widthDropdown / 2 + widthTrigger / 2; |
| | | break; |
| | | case 'right': |
| | | left = rightTrigger - widthDropdown; |
| | | } |
| | | } |
| | | if (anchorSide == 'left' || anchorSide == 'right') { |
| | | widthDropdown += 8; // 加上margin距离 |
| | | switch (anchorPosition) { |
| | | case 'top': |
| | | top = topTrigger + heightTrigger - heightDropdown; |
| | | break; |
| | | case 'center': |
| | | top = topTrigger - heightDropdown / 2 + heightTrigger / 2; |
| | | break; |
| | | case 'bottom': |
| | | top = topTrigger; |
| | | } |
| | | } |
| | | switch (anchorSide) { |
| | | case 'top': |
| | | top = topTrigger - heightDropdown; |
| | | break; |
| | | case 'right': |
| | | left = leftTrigger + widthTrigger; |
| | | break; |
| | | case 'bottom': |
| | | top = topTrigger + heightTrigger; |
| | | break; |
| | | case 'left': |
| | | left = leftTrigger - widthDropdown; |
| | | } |
| | | return {top: top, left: left, right: 'auto', bottom: 'auto'}; |
| | | }, |
| | | // 检查是否溢出屏幕 |
| | | checkPosition: function ($dropNav, $trigger, position, topLeft) { |
| | | var aps = position.split('-'); |
| | | if ('bottom' == aps[0]) { |
| | | if ((topLeft.top + $dropNav.outerHeight()) > dropdown.getPageHeight()) { |
| | | topLeft = dropdown.getTopLeft($trigger, $dropNav, 'top-' + aps[1]); |
| | | $dropNav.removeClass('dropdown-' + position); |
| | | $dropNav.addClass('dropdown-top-' + aps[1]); |
| | | } |
| | | } else if ('top' == aps[0]) { |
| | | if (topLeft.top < 0) { |
| | | topLeft = dropdown.getTopLeft($trigger, $dropNav, 'bottom-' + aps[1]); |
| | | $dropNav.removeClass('dropdown-' + position); |
| | | $dropNav.addClass('dropdown-bottom-' + aps[1]); |
| | | } |
| | | } |
| | | return topLeft; |
| | | }, |
| | | // 获取浏览器高度 |
| | | getPageHeight: function () { |
| | | return document.documentElement.clientHeight || document.body.clientHeight; |
| | | }, |
| | | // 获取浏览器宽度 |
| | | getPageWidth: function () { |
| | | return document.documentElement.clientWidth || document.body.clientWidth; |
| | | } |
| | | }; |
| | | |
| | | dropdown.init(); |
| | | exports('dropdown', dropdown); |
| | | }); |
| | | /** 下拉菜单模块 date:2020-05-04 License By http://easyweb.vip */
|
| | | layui.define(['jquery'], function (exports) {
|
| | | var $ = layui.jquery;
|
| | | var openClass = 'dropdown-open';
|
| | | var disableClass = 'dropdown-disabled';
|
| | | var noScrollClass = 'dropdown-no-scroll';
|
| | | var shadeClass = 'dropdown-menu-shade';
|
| | | var dropdownClass = 'dropdown-menu';
|
| | | var dropNavClass = 'dropdown-menu-nav';
|
| | | var hoverClass = 'dropdown-hover';
|
| | | var fixedClass = 'fixed';
|
| | | var noShadeClass = 'no-shade';
|
| | | var animClass = 'layui-anim layui-anim-upbit';
|
| | | var popAnimClass = 'layui-anim layui-anim-fadein';
|
| | | var dropDirect = ['bottom-left', 'bottom-right', 'bottom-center', 'top-left', 'top-right', 'top-center', 'left-top', 'left-bottom', 'left-center', 'right-top', 'right-bottom', 'right-center'];
|
| | | if ($('#ew-css-dropdown').length <= 0) {
|
| | | layui.link(layui.cache.base + 'dropdown/dropdown.css');
|
| | | }
|
| | |
|
| | | var dropdown = {
|
| | | // 绑定事件
|
| | | init: function () {
|
| | | // 点击触发
|
| | | $(document).off('click.dropdown').on('click.dropdown', '.' + dropdownClass + '>*:first-child', function (event) {
|
| | | var $drop = $(this).parent();
|
| | | if (!$drop.hasClass(hoverClass)) {
|
| | | if ($drop.hasClass(openClass)) {
|
| | | $drop.removeClass(openClass);
|
| | | } else {
|
| | | dropdown.hideAll();
|
| | | dropdown.show($(this).parent().find('.' + dropNavClass));
|
| | | }
|
| | | }
|
| | | event.stopPropagation();
|
| | | });
|
| | | // 点击任何位置关闭所有
|
| | | $(document).off('click.dropHide').on('click.dropHide', function (event) {
|
| | | dropdown.hideAll();
|
| | | });
|
| | | // 点击下拉菜单内容部分不关闭
|
| | | $(document).off('click.dropNav').on('click.dropNav', '.' + dropNavClass, function (event) {
|
| | | event.stopPropagation();
|
| | | });
|
| | | // hover触发
|
| | | var timer, lastDrop, hoverSelector = '.' + dropdownClass + '.' + hoverClass;
|
| | | $(document).off('mouseenter.dropdown').on('mouseenter.dropdown', hoverSelector, function (event) {
|
| | | if (lastDrop && lastDrop == event.currentTarget) {
|
| | | clearTimeout(timer);
|
| | | }
|
| | | dropdown.show($(this).find('.' + dropNavClass));
|
| | | });
|
| | | $(document).off('mouseleave.dropdown').on('mouseleave.dropdown', hoverSelector, function (event) {
|
| | | lastDrop = event.currentTarget;
|
| | | timer = setTimeout(function () {
|
| | | $(event.currentTarget).removeClass(openClass);
|
| | | }, 300);
|
| | | });
|
| | | // 分离式绑定
|
| | | $(document).off('click.dropStand').on('click.dropStand', '[data-dropdown]', function (event) {
|
| | | dropdown.showFixed($(this));
|
| | | event.stopPropagation();
|
| | | });
|
| | | // 无限级子菜单
|
| | | var hoverNavSelector = '.' + dropNavClass + ' li';
|
| | | $(document).off('mouseenter.dropdownNav').on('mouseenter.dropdownNav', hoverNavSelector, function (event) {
|
| | | $(this).children('.dropdown-menu-nav-child').addClass(animClass);
|
| | | $(this).addClass('active');
|
| | | });
|
| | | $(document).off('mouseleave.dropdownNav').on('mouseleave.dropdownNav', hoverNavSelector, function (event) {
|
| | | $(this).removeClass('active');
|
| | | $(this).find('li.active').removeClass('active');
|
| | | });
|
| | | // 气泡确认弹窗
|
| | | $(document).off('click.popconfirm').on('click.popconfirm', '.dropdown-menu-nav [btn-cancel]', function (event) {
|
| | | dropdown.hideAll();
|
| | | event.stopPropagation();
|
| | | });
|
| | | },
|
| | | // 点击菜单关闭
|
| | | openClickNavClose: function () {
|
| | | $(document).off('click.dropNavA').on('click.dropNavA', '.' + dropNavClass + '>li>a', function (event) {
|
| | | dropdown.hideAll();
|
| | | $(this).parentsUntil('.' + dropdownClass).last().parent().removeClass(openClass);
|
| | | event.stopPropagation();
|
| | | });
|
| | | },
|
| | | // 关闭所有
|
| | | hideAll: function () {
|
| | | $('.' + dropdownClass).removeClass(openClass);
|
| | | // 隐藏分离式菜单
|
| | | $('.' + dropNavClass + '.' + fixedClass).addClass('layui-hide'); // 隐藏分离式菜单
|
| | | $('.' + shadeClass).remove(); // 移除遮罩层
|
| | | $('body').removeClass(noScrollClass); // 移除禁止页面滚动
|
| | | $('.dropdown-fix-parent').removeClass('dropdown-fix-parent');
|
| | | $('[data-dropdown]').removeClass(openClass);
|
| | | },
|
| | | // 展开非分离式下拉菜单
|
| | | show: function ($dropNav) {
|
| | | if ($dropNav && $dropNav.length > 0 && !$dropNav.hasClass(disableClass)) {
|
| | | if ($dropNav.hasClass('dropdown-popconfirm')) {
|
| | | $dropNav.removeClass(animClass);
|
| | | $dropNav.addClass(popAnimClass);
|
| | | } else {
|
| | | $dropNav.removeClass(popAnimClass);
|
| | | $dropNav.addClass(animClass);
|
| | | }
|
| | | var position; // 获取位置
|
| | | for (var i = 0; i < dropDirect.length; i++) {
|
| | | if ($dropNav.hasClass('dropdown-' + dropDirect[i])) {
|
| | | position = dropDirect[i];
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (!position) { // 没有设置位置添加默认位置
|
| | | $dropNav.addClass('dropdown-' + dropDirect[0]);
|
| | | position = dropDirect[0];
|
| | | }
|
| | | dropdown.forCenter($dropNav, position);
|
| | | $dropNav.parent('.' + dropdownClass).addClass(openClass);
|
| | | return position;
|
| | | }
|
| | | return false;
|
| | | },
|
| | | // 展开分离式菜单
|
| | | showFixed: function ($trigger) {
|
| | | var $dropNav = $($trigger.data('dropdown')), position;
|
| | | if (!$dropNav.hasClass('layui-hide')) {
|
| | | dropdown.hideAll(); // 已经展开则隐藏
|
| | | return;
|
| | | }
|
| | | dropdown.hideAll(); // 已经展开则隐藏
|
| | | position = dropdown.show($dropNav); // 获取弹出位置
|
| | | if (position) {
|
| | | $dropNav.addClass(fixedClass); // 设置为固定定位
|
| | | $dropNav.removeClass('layui-hide'); // 显示下拉菜单
|
| | | var topLeft = dropdown.getTopLeft($trigger, $dropNav, position); // 计算坐标
|
| | | topLeft = dropdown.checkPosition($dropNav, $trigger, position, topLeft); // 是否溢出屏幕
|
| | | $dropNav.css(topLeft); // 设置坐标
|
| | | $('body').addClass(noScrollClass); // 禁止页面滚动
|
| | | var hideShade = ($trigger.attr('no-shade') == 'true'); // 是否隐藏遮罩层
|
| | | $('body').append('<div class="' + (hideShade ? (shadeClass + ' ' + noShadeClass) : shadeClass) + ' layui-anim layui-anim-fadein"></div>'); // 添加遮罩层
|
| | | // 重置父元素z-index
|
| | | $trigger.parentsUntil('body').each(function () {
|
| | | var zIndex = $(this).css('z-index');
|
| | | if (/[0-9]+/.test(zIndex)) {
|
| | | $(this).addClass('dropdown-fix-parent');
|
| | | }
|
| | | });
|
| | | $trigger.addClass(openClass);
|
| | | }
|
| | | },
|
| | | // 解决绝对定位因动画导致平移失效
|
| | | forCenter: function ($dropNav, position) {
|
| | | if (!$dropNav.hasClass(fixedClass)) {
|
| | | var wTrigger = $dropNav.parent().outerWidth(), hTrigger = $dropNav.parent().outerHeight();
|
| | | var wDrop = $dropNav.outerWidth(), hDrop = $dropNav.outerHeight();
|
| | | var pParts = position.split('-'), dropSide = pParts[0], dropPosition = pParts[1]; // 显示方向
|
| | | if ((dropSide == 'top' || dropSide == 'bottom') && dropPosition == 'center') {
|
| | | $dropNav.css('left', (wTrigger - wDrop) / 2);
|
| | | }
|
| | | if ((dropSide == 'left' || dropSide == 'right') && dropPosition == 'center') {
|
| | | $dropNav.css('top', (hTrigger - hDrop) / 2);
|
| | | }
|
| | | }
|
| | | },
|
| | | // 计算固定定位坐标
|
| | | getTopLeft: function ($trigger, $dropdown, position) {
|
| | | var widthTrigger = $trigger.outerWidth();
|
| | | var heightTrigger = $trigger.outerHeight();
|
| | | var widthDropdown = $dropdown.outerWidth();
|
| | | var heightDropdown = $dropdown.outerHeight();
|
| | | var topTrigger = $trigger.offset().top - $(document).scrollTop();
|
| | | var leftTrigger = $trigger.offset().left;
|
| | | var rightTrigger = leftTrigger + widthTrigger;
|
| | | var top = 0, left = 0;
|
| | | var positionParts = position.split('-');
|
| | | var anchorSide = positionParts[0]; // 箭头位置
|
| | | var anchorPosition = positionParts[1]; // 箭头方向
|
| | | if (anchorSide == 'top' || anchorSide == 'bottom') {
|
| | | heightDropdown += 8; // 加上margin距离
|
| | | switch (anchorPosition) {
|
| | | case 'left':
|
| | | left = leftTrigger;
|
| | | break;
|
| | | case 'center':
|
| | | left = leftTrigger - widthDropdown / 2 + widthTrigger / 2;
|
| | | break;
|
| | | case 'right':
|
| | | left = rightTrigger - widthDropdown;
|
| | | }
|
| | | }
|
| | | if (anchorSide == 'left' || anchorSide == 'right') {
|
| | | widthDropdown += 8; // 加上margin距离
|
| | | switch (anchorPosition) {
|
| | | case 'top':
|
| | | top = topTrigger + heightTrigger - heightDropdown;
|
| | | break;
|
| | | case 'center':
|
| | | top = topTrigger - heightDropdown / 2 + heightTrigger / 2;
|
| | | break;
|
| | | case 'bottom':
|
| | | top = topTrigger;
|
| | | }
|
| | | }
|
| | | switch (anchorSide) {
|
| | | case 'top':
|
| | | top = topTrigger - heightDropdown;
|
| | | break;
|
| | | case 'right':
|
| | | left = leftTrigger + widthTrigger;
|
| | | break;
|
| | | case 'bottom':
|
| | | top = topTrigger + heightTrigger;
|
| | | break;
|
| | | case 'left':
|
| | | left = leftTrigger - widthDropdown;
|
| | | }
|
| | | return {top: top, left: left, right: 'auto', bottom: 'auto'};
|
| | | },
|
| | | // 检查是否溢出屏幕
|
| | | checkPosition: function ($dropNav, $trigger, position, topLeft) {
|
| | | var aps = position.split('-');
|
| | | if ('bottom' == aps[0]) {
|
| | | if ((topLeft.top + $dropNav.outerHeight()) > dropdown.getPageHeight()) {
|
| | | topLeft = dropdown.getTopLeft($trigger, $dropNav, 'top-' + aps[1]);
|
| | | $dropNav.removeClass('dropdown-' + position);
|
| | | $dropNav.addClass('dropdown-top-' + aps[1]);
|
| | | }
|
| | | } else if ('top' == aps[0]) {
|
| | | if (topLeft.top < 0) {
|
| | | topLeft = dropdown.getTopLeft($trigger, $dropNav, 'bottom-' + aps[1]);
|
| | | $dropNav.removeClass('dropdown-' + position);
|
| | | $dropNav.addClass('dropdown-bottom-' + aps[1]);
|
| | | }
|
| | | }
|
| | | return topLeft;
|
| | | },
|
| | | // 获取浏览器高度
|
| | | getPageHeight: function () {
|
| | | return document.documentElement.clientHeight || document.body.clientHeight;
|
| | | },
|
| | | // 获取浏览器宽度
|
| | | getPageWidth: function () {
|
| | | return document.documentElement.clientWidth || document.body.clientWidth;
|
| | | }
|
| | | };
|
| | |
|
| | | dropdown.init();
|
| | | exports('dropdown', dropdown);
|
| | | });
|