From f957ad840fb93aac0b9c50242d38ab79a6eaada3 Mon Sep 17 00:00:00 2001 From: Minwe Date: Fri, 19 Sep 2014 16:33:37 +0800 Subject: [PATCH] update ScrollSpyNav; update dropdown demo --- CHANGELOG.md | 4 ++++ docs/javascript/dropdown.md | 8 ++++++++ js/ui.scrollspynav.js | 20 ++++++++------------ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82be994..ec16adb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ __Sticky__: - `NEW` 增加 `media` 选项,可以设置 Media Query; - `NEW` 增加 `bottom` 选项。 +__ScrollSpyNav__: + +- `FIXED` 链接点击失效问题。 + __Popover__: - `IMPROVED` 每次打开时重新计算弹出层的位置,减少位置偏移问题; diff --git a/docs/javascript/dropdown.md b/docs/javascript/dropdown.md index e231edf..2d694c3 100644 --- a/docs/javascript/dropdown.md +++ b/docs/javascript/dropdown.md @@ -193,17 +193,25 @@ $(function() { var $dropdown = $('#doc-dropdown-js'), data = $dropdown.data('amui.dropdown'); + + function scrollToDropdown() { + $(window).smoothScroll({position: $dropdown.offset().top}); + } + $('#doc-dropdown-toggle').on('click', function(e) { + scrollToDropdown(); $dropdown.dropdown('toggle'); return false; }); $('#doc-dropdown-open').on('click', function(e) { + scrollToDropdown(); data.active ? alert('已经打开了,施主又何必再纠缠呢!') : $dropdown.dropdown('open'); return false; }); $('#doc-dropdown-close').on('click', function(e) { + scrollToDropdown(); data.active ? $dropdown.dropdown('close') : alert('没有开哪有关,没有失哪有得!'); return false; }); diff --git a/js/ui.scrollspynav.js b/js/ui.scrollspynav.js index 73bf10f..734014e 100755 --- a/js/ui.scrollspynav.js +++ b/js/ui.scrollspynav.js @@ -1,8 +1,7 @@ define(function(require, exports, module) { - 'use strict'; - require('core'); + require('ui.smooth-scroll'); var $ = window.Zepto, UI = $.AMUI; @@ -33,7 +32,7 @@ define(function(require, exports, module) { this.$window = $(window).on('scroll.scrollspynav.amui', processRAF) .on('resize.scrollspynav.amui orientationchange.scrollspynav.amui', UI.utils.debounce(processRAF, 50)); - processRAF(); + processRAF(); this.scrollProcess(); }; @@ -91,18 +90,15 @@ define(function(require, exports, module) { // smoothScroll if (this.options.smooth) { - require.async(['ui.smooth-scroll'], function() { - $links.on('click', function(e) { - e.preventDefault(); + $links.on('click', function(e) { + e.preventDefault(); - var $this = $(this), - target = $this.attr('href'), - position = $this.data('am.smoothScroll'); + var $this = $(this), + $target = $($this.attr('href')); - !position && $this.data('am.smoothScroll', (position = $(target).offset().top)); + if (!$target) return; - $(window).smoothScroll(position); - }); + $(window).smoothScroll({position: $target.offset().top}); }); } }; -- GitLab