- Make the ID of
skrollr-body
configurable (#592)
- In cases where skrollr-body has a height other than
auto
the height of its content is now correctly calculated. This should solve many issues on mobile where scrolling got stock before reaching the bottom (#633)
- Fixed AMD module definition (#609)
- Fixed easing functions not working when animating attributes (#533)
- CommonJS (#519).
- Fixed some issue with forceHeight (#347).
- Fixed a regression caused by #486 breaking IE 8 (#494).
- Added support for animating attributes (#204).
note: This particular version is broken in IE!
- Experimental support for emitting events when the scrolling passes a keyframe (check out the docs for
keyframe
option/event). - When using
refresh
, make sure elements which do not longer have keyframes get properly cleaned up (#486). - Fixed
refresh
not acceptingNodeList
s (#435). - Expose the status of mobile mode as
isMobile()
function (#488).
- Experimental AMD support (#409). Please read the documentation about it.
- Disabled mobile mode on Windows Phone, since it's not needed there (#408).
- Fixed broken percentage constants.
- Constants can now be defined as functions or percentage offsets (#148, #404).
breaking: When using a constant of value 100
together with percentage offsets like data-_foo-75p
,
the value was implicitly handled as percentage value 100p
. Starting with this version you need to explcitly use 100p
if you want percentage constants.
On the plus side, you can now mix an absolute constant with a percentage keyframe or a percentage constant with an absolute keyframe.
- Fixed scrolling on input elements (#397).
- Fixed keyboard not appearing on some mobile browsers when an input was focused (#349).
- Fixed
z-index:auto;
not working because it was always coerced to an integer (#351).
- Fixed clicking on links (and other elements) on mobile (#263, #303, #338).
- Added
getMaxScrollTop
method (#238).
- Fixed the
direction
parameter that's passed to the render events (#339).
- Added support for percentage offsets (#185).
- Added
destroy
method (#109).
- Made the mobile deceleration configurable and lowered the default (#222, #229).
- Fixed bug which caused IE to perform an endless loop (#271).
- Improved overall performance for mobile (#249).
- Added a new option
smoothScrollingDuration
.
- Changed the default value of
edgeStrategy
fromease
toset
. There are too many cases whereease
was not wanted and unexpected.
- Fixed IE plugin not working. This was caused by assigning
skrollr.setStyle
to a local variable inside the skrollr core. Since the IE plugin monkey-patches the skrollr.setStyle function, the core didn't notice the change (#199 comment 18986949).
- Fixed crash in IE < 9 because the detected prefix was
null
(#220).
- Fixed that some elements got the
skrollable-before
andskrollable-after
class at the same time.
- When resizing the browser, the scroll position was reset to 0 (#217)
- When resizing the browser,
forceHeight
was colliding with the already forced height (#216).
- Allow numbers inside of easing function names (#152).
Expect things to break when coming from 0.5! Read through the changelog. Migration is not hard.
- [breaking] There's no more
skrollr.mobile.js
file. You only needskrollr.js
. You no longer need to conditionally includeskrollr.mobile.js
. - You can configure how skrollr detects mobile browsers using the
mobileCheck
option (check out the documentation). - [possibly breaking] The meaning of the
#skrollr-body
element changed. Put all static elements inside of it and all absolute/fixed elements outside. It doesn't need to be the first child of the body anymore. - [breaking] The
rendered
andunrendered
classes where renamed because they were confusing and wrong. They're now calledskrollable-before
andskrollable-after
, because that's their meaning (the element with these classes is before/after the first/last keyframe).- Added a new class
skrollable-between
, because symmetry. That's why.
- Added a new class
- Easing functions are now applied when exactly at a keyframe (#132).
- [possibly breaking] The behavior changed for the case when the scroll position is before/after the first/last keyframe (I'm just gonna use "before first" from now on, because "after last" is analog). In 0.5 the behavior was not exactly specified and buggy (see item above regarding #132). Skrollr was applying the styles of the first keyframe to the element for all scroll position that were before the first keyframe. E.g. when
data-100="top:200px;"
was the first keyframe, the element hadtop:200px;
at all scroll positions before (all from0
to99
). From now on you can specify the behavior you want (seeedgeStrategy
option for details, set it toset
for old behavior). Note: 0.6.7 and up useset
as default.
- Add a
skrollr-mobile
class to the html element when the mobile script is included.
- #131: Use a cross browser approach for getting the body scroll-height.
- #133: Use the maximum of document height or the max keyframe for edge cases where absolute keyframes are used in a relative-mode-like document and
data-end
was calculated wrong.
- #121: Fixed prefix detection in Safari.
- #126: When calling refresh(), force rerendering, even if the scrollbar didn't move.
- #104: Fixed the most annoying bug on mobile. There was a large blank space at the bottom of the page.
- #118: Fixed broken prefix detection. Was broken all the time, but worked before Firefox 18.
- #116 + #117: SVG support was broken for relative mode.
- #103: skrollr no longer depends on being added to the bottom of the document.
- #105: Fixed inconsistent behaviour for adding
rendered
andunrendered
class on page load
- #100: Fixed relative-mode not working correctly in IE < 9 due to crippled getBoundingClientRect
- #80: When resizing the browser window the calculation of relative mode was wrong when the element's vertical position was changed before.
- #66: Make IE 7 support a light version of
data-anchor-target
by mappingquerySelector
togetElementById
.
- #78: Fixed that new parser didn't allowed omitting the last semicolon in a keyframe property list.
- Fixed
setScrollTop
andanimateTo
not working because iScroll uses negative offset.
- breaking the
plugin
api has been removed (the IE plugin has been updated to a new, hidden api). - Full mobile support using iscroll.
- #73: Fixed parser to not mess up colons inside URLs
- #74: Fixed parser to not treat single periods as decimal numbers
- #76: Fixed dummy element overlaping the content, even though it should be unobtrusive
- #58:
forceHeight
now handles relative mode like a boss. - #59: Make
scale
option only affect absolute mode.
- #64: Setting
float
property using JavaScript didn't work across browser. Now usingstyleFloat
andcssFloat
properties.
- The
scale
option does not affectconstants
.
- Allow smooth scrolling on element level using
data-smooth-scrolling
- Added experimental smooth scrolling (no more CSS transitions. WORKS IN IE.).
- Added
stopAnimateTo
method.
- Updated the requestAnimationFrame polyfill for smoother animations
- Updated the way requestAnimationFrame is used for even smoother animations
- New method
relativeToAbsolute
which was formerly private - New method
isAnimatingTo
to check if an animation caused byanimateTo
is running - Added
sqrt
easing function
- Experimental mobile support using https://github.com/zynga/scroller
- A
skrollr
class is added to the HTML element and ano-skrollr
class is removed wheninit
is called. Useful for fallback styling.
- Added new feature "constants".
- Added new feature "anchor-target" which allows elements to react to other elements leaving/entering the viewport.
- Fixed a bug which broke skrollr in IE caused by wrong regular expression behavior
- breaking the
data-end-[offset]
syntax changed. It's nowdata-[offset]-end
. - Fixed a bug where white spaces between style declarations were not ignored.
- Added support for anchors. Animations can now be specified relative to the elements position within the viewport.
- Added support for SVG elements.
- Added new method
refresh()
.