ignore cursor position on scrollbar

0

How to ignore the cursor position on the scroll bar?

JSFiddle

var margem = 0;
function criarBarraDeRolagem(){
if ($( document ).height() < $( window ).height()) 
{
return; 
}
var tamanho = $( window ).height() / $( document ).height();
$('#rolagem2').css('top', margem + ($( window ).scrollTop() * tamanho));
$('#rolagem2').height($( window ).height() * tamanho - (margem + margem) );
}

$(document).ready(function(){
criarBarraDeRolagem();
});



var dragObj = null;
$("#rolagem2, body, html").mouseup(function(){
$('body, html').removeClass("unselectable");
dragObj = null;
});

$("#rolagem2").mousedown(function(){
$('body, html').addClass("unselectable");
dragObj = this;
});

$("#rolagem2, body, html").mousemove(function(e){
if( dragObj ) 
{
var move = e.pageY - $("#rolagem").offset().top;
var speed = $(window).height() / $("#rolagem2").height();
$(window).scrollTop(move * speed);
criarBarraDeRolagem();
e.stopPropagation();
e.preventDefault();
}   
});

Code working! I just need to ignore the cursor position on the scroll bar ...

EDIT: New fiddle !!! link

    
asked by anonymous 25.09.2014 / 21:38

1 answer

1
var margem = 0;
var diff = 0

function criarBarraDeRolagem() {
    if ($(document).height() < $(window).height() - diff) {
        return;
    }
    if ($("#rolagem").offset().top <= $("#rolagem2").offset().top) {
        var tamanho = $(window).height() / $(document).height();
        var top = margem + ($(window).scrollTop() * tamanho) ;
        $('#rolagem2').css('top', top);
        $('#rolagem2').height($(window).height() * tamanho - (margem + margem));
    }
}

$(document).ready(function () {
    criarBarraDeRolagem();
});

var dragObj = null;
$("#rolagem2, body, html").mouseup(function (e) {
    $('body, html').removeClass("unselectable");
    dragObj = null;
});

$("#rolagem2").mousedown(function (e) {
    $('body, html').addClass("unselectable");
    dragObj = this;
    diff = e.pageY - $("#rolagem2").offset().top;
});

$("#rolagem2, body, html").mousemove(function (e) {
    if (dragObj) {
        var move = e.pageY - $("#rolagem").offset().top;
        var speed = $(window).height() / $("#rolagem2").height();
        $(window).scrollTop((move - diff) * speed);
        criarBarraDeRolagem();
        e.stopPropagation();
        e.preventDefault();
    }
});

JSFiddle Running

    
25.09.2014 / 21:47