![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
jquery-scroll-lock
Advanced tools
Locks mouse wheel scroll inside container, preventing it from propagating to parent element
Scroll Lock is a jQuery plugin that fully addresses the issue of locking mouse wheel scroll inside a given container, preventing it from propagating to parent element.
View demo
It does not change wheel scrolling speed, user experience will not be affected.
You get the same behavior regardless of the OS mouse wheel vertical scrolling speed.
On Windows it can be set to one screen or one line up to 100 lines per notch.
Supports touch screens.
Install-Package jquery-scrollLock
bower install jquery-scrollLock
npm install jquery-scroll-lock --save
Trigger Scroll Lock via JavaScript:
$('#target').scrollLock();
Trigger Scroll Lock via Markup:
<!-- HTML -->
<div data-scrollLock
data-strict='true'
data-selector='.child'
data-animation='{"top":"top locked","bottom":"bottom locked"}'
data-keyboard='{"tabindex":0}'
data-unblock='.inner'>
...
</div>
<!-- JavaScript -->
<script type="text/javascript">
$('[data-scrollLock]').scrollLock()
</script>
Options | Type | Default | Description |
---|---|---|---|
animation | object | false | An object defining CSS class(es) to be applied when top or bottom edge is locked. (see remarks1) |
keyboard | object | false | When enabled, keys that causes scrolling will also be locked. (see remarks2) |
selector | string | false | When provided, matching descendants will be locked. Useful when dealing with dynamic HTML. |
strict | boolean | false | When enabled, only elements passing the strictFn check will be locked. |
strictFn | function | remarks3 | This function is responsible for deciding if the element should be locked or not. |
touch | boolean | auto | Indicates if an element's lock is enabled on touch screens. |
unblock | string | false | When provided, matching descendants scrolling will be unblocked. Useful when having a scrollable element inside a locked one. |
This is pure JavaScript plugin, it does not provide any CSS. You need to implement your own!
The animation
option has two keys:
{
"top": "top locked",
"bottom": "bottom locked"
}
When an edge is locked, the value of both animation.top + animation.bottom
will be removed from the locked element's class list.
Then based on the locked edge, the value of animation.top
or animation.bottom
is added to the class list, and removed once the browser animationend
event is fired.
In chrome, The following keys causes a scroll, which may propagate to parent element.
space, pageup, pagedown , end , home, up, down
The keyboard
option has one key:
{ "tabindex": 0 }
The tabindex
is required to be able to listen to keyboard events on none input elements, such as a div
. The side effect of adding a tabindex
is the browser highlight when the element is focused.
Which can be avoided via CSS outline
property.
.scrollable{ outline:0; }
The default strictFn
implementation checks if the element requires a vertical scrollbar.
strictFn = function($element){
return $element.prop('scrollHeight') > $element.prop('clientHeight');
}
In previous versions (≤ v2.1.0), The check was based on scrollbar visibility, In case you require such behavior, include the following in your script:
$.fn.scrollLock.defaults.strictFn = function ($element) {
var clientWidth = $element.prop('clientWidth'),
offsetWidth = $element.prop('offsetWidth'),
borderRightWidth = parseInt($element.css('border-right-width'), 10),
borderLeftWidth = parseInt($element.css('border-left-width'), 10)
return clientWidth + borderLeftWidth + borderRightWidth < offsetWidth
}
Method | Description |
---|---|
.scrollLock('enable') | Enables an element's Scroll Lock. |
.scrollLock('disable') | Disables an element's Scroll Lock. |
.scrollLock('toggleStrict') | Toggles an element's strict option. |
.scrollLock('destroy') | Disables and destroys an element's Scroll Lock. |
Event | Description |
---|---|
top.scrollLock | This event fires immediately when the top edge scroll is locked. |
bottom.scrollLock | This event fires immediately when the bottom edge scroll is locked. |
$('#target').on('top.scrollLock', function (evt) {
// do magic :)
})
Have a suggestion or a bug ? please open a new issue.
If you want to use jquery-scrollLock.js to develop commercial sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Purchase a jquery-scrollLock.js Commercial License at http://www.uplabs.com/posts/scroll-lock-plugin
FAQs
Locks mouse wheel scroll inside container, preventing it from propagating to parent element
The npm package jquery-scroll-lock receives a total of 1,063 weekly downloads. As such, jquery-scroll-lock popularity was classified as popular.
We found that jquery-scroll-lock demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.