version 1.13.0

This commit is contained in:
Rene
2020-08-02 18:02:42 +02:00
parent 5534d0f80b
commit 72f5169165
8 changed files with 137 additions and 59 deletions
+22 -12
View File
@@ -2,13 +2,13 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
* Version: 1.12.0
* Version: 1.13.0
*
* Copyright KingSora | Rene Haas.
* https://github.com/KingSora
*
* Released under the MIT license.
* Date: 05.04.2020
* Date: 02.08.2020
*/
/*
@@ -149,7 +149,6 @@ body.os-dragging * {
right: 0;
width: auto !important;
height: auto !important;
z-index: 1;
}
.os-host-overflow > .os-padding {
overflow: hidden;
@@ -269,26 +268,37 @@ body.os-dragging * {
border-style: solid;
box-sizing: border-box;
}
.os-resize-observer-host > .os-resize-observer {
height: 200%;
width: 200%;
padding: inherit;
border: inherit;
margin: 0px;
display: block;
box-sizing: content-box;
}
.os-resize-observer-host.observed {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
.os-resize-observer-host > .os-resize-observer,
.os-resize-observer-host.observed > .os-resize-observer {
height: 200%;
width: 200%;
padding: inherit;
border: inherit;
margin: 0;
display: block;
box-sizing: content-box;
}
.os-resize-observer-host.observed > .os-resize-observer,
.os-resize-observer-host.observed > .os-resize-observer:before {
display: flex;
position: relative;
flex-grow: 1;
flex-shrink: 0;
flex-basis: auto;
box-sizing: border-box;
}
.os-resize-observer-host.observed > .os-resize-observer:before {
content: '';
box-sizing: content-box;
padding: inherit;
border: inherit;
margin: 0;
}
.os-size-auto-observer {
box-sizing: inherit !important;
+3 -3
View File
File diff suppressed because one or more lines are too long
+41 -14
View File
@@ -2,13 +2,13 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
* Version: 1.12.0
* Version: 1.13.0
*
* Copyright KingSora | Rene Haas.
* https://github.com/KingSora
*
* Released under the MIT license.
* Date: 05.04.2020
* Date: 02.08.2020
*/
(function (global, factory) {
@@ -2326,24 +2326,36 @@
* @param eventNames The name(s) of the events.
* @param listener The method which shall be called.
* @param remove True if the handler shall be removed, false or undefined if the handler shall be added.
* @param passiveOrOptions The options for the event.
*/
function setupResponsiveEventListener(element, eventNames, listener, remove, passive) {
function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {
var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);
var method = remove ? 'removeEventListener' : 'addEventListener';
var onOff = remove ? 'off' : 'on';
var events = collected ? false : eventNames.split(_strSpace)
var i = 0;
var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);
var passive = _supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive || false) : passiveOrOptions);
var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);
var useNative = capture || passive;
var nativeParam = passive ? {
passive: passive,
capture: capture,
} : capture;
if (collected) {
for (; i < eventNames[LEXICON.l]; i++)
setupResponsiveEventListener(element, eventNames[i], listener[i], remove);
setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);
}
else {
for (; i < events[LEXICON.l]; i++) {
if (_supportPassiveEvents)
element[0][method](events[i], listener, { passive: passive || false });
else
if(useNative) {
element[0][method](events[i], listener, nativeParam);
}
else {
element[onOff](events[i], listener);
}
}
}
}
@@ -3992,8 +4004,8 @@
addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);
addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);
//add or remove rtl class name for styling purposes
if (cssDirectionChanged) {
//add or remove rtl class name for styling purposes except when its body, then the scrollbar stays
if (cssDirectionChanged && !_isBody) {
addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);
}
@@ -4514,6 +4526,7 @@
var scroll = _strScroll + scrollbarVars._Left_Top;
var strActive = 'active';
var strSnapHandle = 'snapHandle';
var strClickEvent = 'click';
var scrollDurationFactor = 1;
var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl
var trackTimeout;
@@ -4533,6 +4546,9 @@
function decreaseTrackScrollAmount() {
scrollDurationFactor = 1;
}
function stopClickEventPropagation(event) {
COMPATIBILITY.stpP(event);
}
function documentKeyDown(event) {
if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)
increaseTrackScrollAmount();
@@ -4576,7 +4592,11 @@
[_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],
[documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],
true);
COMPATIBILITY.rAF()(function() {
setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });
});
if (_scrollbarsHandlesDefineScrollPos)
refreshScrollbarHandleOffset(isHorizontal, true);
@@ -4631,6 +4651,10 @@
setupResponsiveEventListener(_documentElement,
[_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],
[documentDragMove, documentMouseTouchUp, documentOnSelectStart]);
COMPATIBILITY.rAF()(function() {
setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });
});
if (_msieVersion || !_documentMixed)
COMPATIBILITY.prvD(event);
@@ -4638,7 +4662,10 @@
}
function onTrackMouseTouchDown(event) {
if (onMouseTouchDownContinue(event)) {
var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h]);
var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);
var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);
var scrollBaseDuration = 270 * handleToViewportRatio;
var scrollFirstIterationDelay = 400 * handleToViewportRatio;
var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];
var ctrlKey = event.ctrlKey;
var instantScroll = event.shiftKey;
@@ -4663,8 +4690,8 @@
var handleLength = scrollbarVarsInfo._handleLength;
var scrollRange = scrollbarVarsInfo._maxScroll;
var currScroll = scrollbarVarsInfo._currentScroll;
var scrollDuration = 270 * scrollDurationFactor;
var timeoutDelay = isFirstIteration ? MATH.max(400, scrollDuration) : scrollDuration;
var scrollDuration = scrollBaseDuration * scrollDurationFactor;
var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;
var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent
var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);
var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;
@@ -4839,7 +4866,7 @@
var scrollbarVarsInfo = scrollbarVars._info;
var digit = 1000000;
//get and apply intended handle length
var handleRatio = MATH.min(1, (_hostSizeCache[scrollbarVars._w_h] - (_paddingAbsoluteCache ? (isHorizontal ? _paddingX : _paddingY) : 0)) / _contentScrollSizeCache[scrollbarVars._w_h]);
var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);
handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit
if (!nativeOverlayScrollbarsAreActive())
+3 -3
View File
File diff suppressed because one or more lines are too long
+41 -14
View File
@@ -2,13 +2,13 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
* Version: 1.12.0
* Version: 1.13.0
*
* Copyright KingSora | Rene Haas.
* https://github.com/KingSora
*
* Released under the MIT license.
* Date: 30.03.2020
* Date: 02.08.2020
*/
(function (global, factory) {
@@ -1243,24 +1243,36 @@
* @param eventNames The name(s) of the events.
* @param listener The method which shall be called.
* @param remove True if the handler shall be removed, false or undefined if the handler shall be added.
* @param passiveOrOptions The options for the event.
*/
function setupResponsiveEventListener(element, eventNames, listener, remove, passive) {
function setupResponsiveEventListener(element, eventNames, listener, remove, passiveOrOptions) {
var collected = COMPATIBILITY.isA(eventNames) && COMPATIBILITY.isA(listener);
var method = remove ? 'removeEventListener' : 'addEventListener';
var onOff = remove ? 'off' : 'on';
var events = collected ? false : eventNames.split(_strSpace)
var i = 0;
var passiveOrOptionsIsObj = FRAMEWORK.isPlainObject(passiveOrOptions);
var passive = _supportPassiveEvents && (passiveOrOptionsIsObj ? (passiveOrOptions._passive || false) : passiveOrOptions);
var capture = passiveOrOptionsIsObj && (passiveOrOptions._capture || false);
var useNative = capture || passive;
var nativeParam = passive ? {
passive: passive,
capture: capture,
} : capture;
if (collected) {
for (; i < eventNames[LEXICON.l]; i++)
setupResponsiveEventListener(element, eventNames[i], listener[i], remove);
setupResponsiveEventListener(element, eventNames[i], listener[i], remove, passiveOrOptions);
}
else {
for (; i < events[LEXICON.l]; i++) {
if (_supportPassiveEvents)
element[0][method](events[i], listener, { passive: passive || false });
else
if(useNative) {
element[0][method](events[i], listener, nativeParam);
}
else {
element[onOff](events[i], listener);
}
}
}
}
@@ -2909,8 +2921,8 @@
addRemoveClass(_hostElement, _classNameHostOverflowX, hideOverflow.x);
addRemoveClass(_hostElement, _classNameHostOverflowY, hideOverflow.y);
//add or remove rtl class name for styling purposes
if (cssDirectionChanged) {
//add or remove rtl class name for styling purposes except when its body, then the scrollbar stays
if (cssDirectionChanged && !_isBody) {
addRemoveClass(_hostElement, _classNameHostRTL, _isRTL);
}
@@ -3431,6 +3443,7 @@
var scroll = _strScroll + scrollbarVars._Left_Top;
var strActive = 'active';
var strSnapHandle = 'snapHandle';
var strClickEvent = 'click';
var scrollDurationFactor = 1;
var increaseDecreaseScrollAmountKeyCodes = [16, 17]; //shift, ctrl
var trackTimeout;
@@ -3450,6 +3463,9 @@
function decreaseTrackScrollAmount() {
scrollDurationFactor = 1;
}
function stopClickEventPropagation(event) {
COMPATIBILITY.stpP(event);
}
function documentKeyDown(event) {
if (inArray(event.keyCode, increaseDecreaseScrollAmountKeyCodes) > -1)
increaseTrackScrollAmount();
@@ -3493,7 +3509,11 @@
[_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strKeyDownEvent, _strKeyUpEvent, _strSelectStartEvent],
[documentDragMove, documentMouseTouchUp, documentKeyDown, documentKeyUp, documentOnSelectStart],
true);
COMPATIBILITY.rAF()(function() {
setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, true, { _capture: true });
});
if (_scrollbarsHandlesDefineScrollPos)
refreshScrollbarHandleOffset(isHorizontal, true);
@@ -3548,6 +3568,10 @@
setupResponsiveEventListener(_documentElement,
[_strMouseTouchMoveEvent, _strMouseTouchUpEvent, _strSelectStartEvent],
[documentDragMove, documentMouseTouchUp, documentOnSelectStart]);
COMPATIBILITY.rAF()(function() {
setupResponsiveEventListener(_documentElement, strClickEvent, stopClickEventPropagation, false, { _capture: true });
});
if (_msieVersion || !_documentMixed)
COMPATIBILITY.prvD(event);
@@ -3555,7 +3579,10 @@
}
function onTrackMouseTouchDown(event) {
if (onMouseTouchDownContinue(event)) {
var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h]);
var handleToViewportRatio = scrollbarVars._info._handleLength / Math.round(MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]) * scrollbarVars._info._trackLength);
var scrollDistance = MATH.round(_viewportSize[scrollbarVars._w_h] * handleToViewportRatio);
var scrollBaseDuration = 270 * handleToViewportRatio;
var scrollFirstIterationDelay = 400 * handleToViewportRatio;
var trackOffset = scrollbarVars._track.offset()[scrollbarVars._left_top];
var ctrlKey = event.ctrlKey;
var instantScroll = event.shiftKey;
@@ -3580,8 +3607,8 @@
var handleLength = scrollbarVarsInfo._handleLength;
var scrollRange = scrollbarVarsInfo._maxScroll;
var currScroll = scrollbarVarsInfo._currentScroll;
var scrollDuration = 270 * scrollDurationFactor;
var timeoutDelay = isFirstIteration ? MATH.max(400, scrollDuration) : scrollDuration;
var scrollDuration = scrollBaseDuration * scrollDurationFactor;
var timeoutDelay = isFirstIteration ? MATH.max(scrollFirstIterationDelay, scrollDuration) : scrollDuration;
var instantScrollPosition = scrollRange * ((mouseOffset - (handleLength / 2)) / (trackLength - handleLength)); // 100% * positionPercent
var rtlIsNormal = _isRTL && isHorizontal && ((!_rtlScrollBehavior.i && !_rtlScrollBehavior.n) || _normalizeRTLCache);
var decreaseScrollCondition = rtlIsNormal ? handleOffset < mouseOffset : handleOffset > mouseOffset;
@@ -3756,7 +3783,7 @@
var scrollbarVarsInfo = scrollbarVars._info;
var digit = 1000000;
//get and apply intended handle length
var handleRatio = MATH.min(1, (_hostSizeCache[scrollbarVars._w_h] - (_paddingAbsoluteCache ? (isHorizontal ? _paddingX : _paddingY) : 0)) / _contentScrollSizeCache[scrollbarVars._w_h]);
var handleRatio = MATH.min(1, _viewportSize[scrollbarVars._w_h] / _contentScrollSizeCache[scrollbarVars._w_h]);
handleCSS[scrollbarVars._width_height] = (MATH.floor(handleRatio * 100 * digit) / digit) + '%'; //the last * digit / digit is for flooring to the 4th digit
if (!nativeOverlayScrollbarsAreActive())
+3 -3
View File
File diff suppressed because one or more lines are too long
+22 -8
View File
@@ -1,6 +1,6 @@
{
"name": "overlayscrollbars",
"version": "1.11.0",
"version": "1.12.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -1106,12 +1106,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1126,17 +1128,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -1253,7 +1258,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@@ -1265,6 +1271,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -1279,6 +1286,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -1286,12 +1294,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -1310,6 +1320,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -1390,7 +1401,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -1402,6 +1414,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -1523,6 +1536,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "overlayscrollbars",
"version": "1.12.0",
"version": "1.13.0",
"description": "A javascript scrollbar plugin which hides native scrollbars, provides custom styleable overlay scrollbars and keeps the native functionality and feeling.",
"keywords": [
"overlayscrollbars",
@@ -42,4 +42,4 @@
"shelljs": "^0.8.3",
"uglify-js": "^3.8.1"
}
}
}