From dea8dc1a00c12289fbb4f68e8103620e1bf176fb Mon Sep 17 00:00:00 2001 From: Ben Dixon Date: Thu, 18 Jun 2015 15:09:37 +0100 Subject: [PATCH 1/3] Add definitions for ScrollToFixed https://github.com/bigspotteddog/ScrollToFixed --- scrolltofixed/scrolltofixed-tests.ts | 35 ++++++++++++++++++++++ scrolltofixed/scrolltofixed.d.ts | 43 ++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 scrolltofixed/scrolltofixed-tests.ts create mode 100644 scrolltofixed/scrolltofixed.d.ts diff --git a/scrolltofixed/scrolltofixed-tests.ts b/scrolltofixed/scrolltofixed-tests.ts new file mode 100644 index 000000000..23b787304 --- /dev/null +++ b/scrolltofixed/scrolltofixed-tests.ts @@ -0,0 +1,35 @@ +/// + +$(document).ready(function() { + $('#mydiv').scrollToFixed(); +}); + +$(document).ready(function() { + $('.header').scrollToFixed({ + preFixed: function() { $(this).find('h1').css('color', 'blue'); }, + postFixed: function() { $(this).find('h1').css('color', ''); } + }); + + $('.footer').scrollToFixed( { + bottom: 0, + limit: $('.footer').offset().top, + preFixed: function() { $(this).find('h1').css('color', 'blue'); }, + postFixed: function() { $(this).find('h1').css('color', ''); } + }); + + // Order matters because our summary limit is based on the position + // of the footer. On window refresh, the summary needs to recalculate + // after the footer. + $('#summary').scrollToFixed({ + marginTop: $('.header').outerHeight() + 10, + limit: function() { + var limit = $('.footer').offset().top - $('#summary').outerHeight(true) - 10; + return limit; + }, + zIndex: 999, + preFixed: function() { $(this).find('.title').css('color', 'blue'); }, + preAbsolute: function() { $(this).find('.title').css('color', 'red'); }, + postFixed: function() { $(this).find('.title').css('color', ''); }, + postAbsolute: function() { $(this).find('.title').css('color', ''); } + }); +}); \ No newline at end of file diff --git a/scrolltofixed/scrolltofixed.d.ts b/scrolltofixed/scrolltofixed.d.ts new file mode 100644 index 000000000..2a1ef70a8 --- /dev/null +++ b/scrolltofixed/scrolltofixed.d.ts @@ -0,0 +1,43 @@ +// Type definitions for ScrollToFixed +// Project: https://github.com/bigspotteddog/ScrollToFixed +// Definitions by: Ben Dixon +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module ScrollToFixed { + interface ScrollToFixedOptions { + marginTop? : number | (() => number); + limit? : number | (() => number); + bottom?: number; + zIndex? : number; + spacerClass? : string; + preFixed?: () => void; + fixed?: () => void; + postFixed?: () => void; + preUnfixed?: () => void; + unfixed?: () => void; + postUnfixed?: () => void; + preAbsolute?: () => void; + postAbsolute?: () => void; + offsets? : boolean; + minWidth? : number; + maxWidth? : number; + dontCheckForPositionFixedSupport? : boolean; + dontSetWidth? : boolean; + removeOffsets? : boolean; + } +} + +interface JQuery { + isScrollToFixed(el: Element) : JQuery; + isScrollToFixed(el: Element[]) : JQuery; + isScrollToFixed(el: {}) : JQuery; + isScrollToFixed(el: JQuery) : JQuery; + ScrollToFixed(el : Element, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; + ScrollToFixed(el: Element[], options : ScrollToFixed.ScrollToFixedOptions) : JQuery; + ScrollToFixed(el: {}, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; + ScrollToFixed(el: JQuery, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; + + scrollToFixed : (options? : ScrollToFixed.ScrollToFixedOptions) => JQuery[]; +} \ No newline at end of file From 018e116d13ec1ad7d571c7e313bda7773d32728d Mon Sep 17 00:00:00 2001 From: Ben Dixon Date: Thu, 18 Jun 2015 15:27:56 +0100 Subject: [PATCH 2/3] Update ScrollToFixed definitions --- scrolltofixed/scrolltofixed.d.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scrolltofixed/scrolltofixed.d.ts b/scrolltofixed/scrolltofixed.d.ts index 2a1ef70a8..a4581a368 100644 --- a/scrolltofixed/scrolltofixed.d.ts +++ b/scrolltofixed/scrolltofixed.d.ts @@ -13,10 +13,10 @@ declare module ScrollToFixed { zIndex? : number; spacerClass? : string; preFixed?: () => void; - fixed?: () => void; postFixed?: () => void; - preUnfixed?: () => void; + fixed?: () => void; unfixed?: () => void; + preUnfixed?: () => void; postUnfixed?: () => void; preAbsolute?: () => void; postAbsolute?: () => void; @@ -26,6 +26,8 @@ declare module ScrollToFixed { dontCheckForPositionFixedSupport? : boolean; dontSetWidth? : boolean; removeOffsets? : boolean; + baseClassName?: string; + className?: string; } } From 55e444180a0f37a8910c96250a3957c6c79607da Mon Sep 17 00:00:00 2001 From: Ben Dixon Date: Thu, 18 Jun 2015 16:51:47 +0100 Subject: [PATCH 3/3] Update ScrollToFixed definitions --- scrolltofixed/scrolltofixed-tests.ts | 7 +++---- scrolltofixed/scrolltofixed.d.ts | 12 ++++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/scrolltofixed/scrolltofixed-tests.ts b/scrolltofixed/scrolltofixed-tests.ts index 23b787304..80d67922f 100644 --- a/scrolltofixed/scrolltofixed-tests.ts +++ b/scrolltofixed/scrolltofixed-tests.ts @@ -17,9 +17,6 @@ $(document).ready(function() { postFixed: function() { $(this).find('h1').css('color', ''); } }); - // Order matters because our summary limit is based on the position - // of the footer. On window refresh, the summary needs to recalculate - // after the footer. $('#summary').scrollToFixed({ marginTop: $('.header').outerHeight() + 10, limit: function() { @@ -32,4 +29,6 @@ $(document).ready(function() { postFixed: function() { $(this).find('.title').css('color', ''); }, postAbsolute: function() { $(this).find('.title').css('color', ''); } }); -}); \ No newline at end of file +}); + +var b = $.isScrollToFixed('.header'); \ No newline at end of file diff --git a/scrolltofixed/scrolltofixed.d.ts b/scrolltofixed/scrolltofixed.d.ts index a4581a368..f9fed47c5 100644 --- a/scrolltofixed/scrolltofixed.d.ts +++ b/scrolltofixed/scrolltofixed.d.ts @@ -31,15 +31,19 @@ declare module ScrollToFixed { } } -interface JQuery { +interface JQuery { + scrollToFixed : (options? : ScrollToFixed.ScrollToFixedOptions) => JQuery[]; +} + +interface JQueryStatic { isScrollToFixed(el: Element) : JQuery; isScrollToFixed(el: Element[]) : JQuery; isScrollToFixed(el: {}) : JQuery; isScrollToFixed(el: JQuery) : JQuery; + + ScrollToFixed(el: Element, options: ScrollToFixed.ScrollToFixedOptions): void; ScrollToFixed(el : Element, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; ScrollToFixed(el: Element[], options : ScrollToFixed.ScrollToFixedOptions) : JQuery; ScrollToFixed(el: {}, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; - ScrollToFixed(el: JQuery, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; - - scrollToFixed : (options? : ScrollToFixed.ScrollToFixedOptions) => JQuery[]; + ScrollToFixed(el: JQuery, options : ScrollToFixed.ScrollToFixedOptions) : JQuery; } \ No newline at end of file