Skip to content

Instantly share code, notes, and snippets.

@pplante
Created February 9, 2011 06:29
Show Gist options
  • Save pplante/818034 to your computer and use it in GitHub Desktop.
Save pplante/818034 to your computer and use it in GitHub Desktop.
// Copyright (c) 2010 Endless Paths LLC (contact@endlesspaths.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// This creative bit of code will allow any scrollable element
// in the page to block the mousewheel from scrolling the rest of the
// page when you hit the top or bottom of the list.
$('.block-scrolling').live('mousewheel', function(e) {
var elem = $(e.currentTarget);
var scrollTop = elem.scrollTop();
var scrollBottom = elem.scrollTop() + elem.height();
var scrollHeight = e.currentTarget.scrollHeight;
if((scrollBottom == scrollHeight && e.wheelDelta < 0) || (scrollTop == 0 && e.wheelDelta > 0)) {
e.preventDefault();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment