diff --git a/CHANGELOG.md b/CHANGELOG.md index 437b261..9f0f086 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* 0.2.10 + - 修正二级导航左右边界的计算 + * 0.2.9 - 升级 `rule` 模块下的 `phone`/`mobile` 规则,支持 `17` 开头的手机号 diff --git a/package.json b/package.json index b877bff..294811d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bat-ria", - "version": "0.2.9", + "version": "0.2.10", "description": "RIA extension for Brand Ads Team", "main": "main.js", "repository": { @@ -22,7 +22,7 @@ "moment": "2.x", "etpl": ">=3.0.0", "urijs": ">=1.12.0", - "eoo": "~0.0.9", + "eoo": "^0.0.9", "mini-event": "~1.0.2" } }, diff --git a/src/ui/navigator.js b/src/ui/navigator.js index 8ca3be3..111ec6f 100644 --- a/src/ui/navigator.js +++ b/src/ui/navigator.js @@ -326,13 +326,17 @@ define(function (require) { if (isNew) { // 二级导航位置的计算,二级导航的长度默认为去除最右子元素的边距后的剩余长度 // 然后将二级导航的垂直平分线与一级导航子元素对齐 - var navOffset = lib.getOffset(main); var navItemOffset = lib.getOffset(navItems[index]); var subNavOffset = lib.getOffset(ul); var middleOfNavItem = navItemOffset.left + navItemOffset.width / 2; var marginLeft = (middleOfNavItem - subNavOffset.width / 2); - if (marginLeft < -navOffset.left + 10) { - marginLeft = -navOffset.left + 10; + var bodyWidth = lib.getOffset(document.body).width; + // 看下是不是超出最左边和最右边 + if (marginLeft < 0) { + marginLeft = 10; + } + else if (marginLeft + navItemOffset.right > bodyWidth) { + marginLeft = bodyWidth - subNavOffset.width - 10; } ul.style.cssText = 'margin-left: ' + marginLeft + 'px'; }