You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.2 KiB

3 years ago
(function($){
$.fn.jScroll = function(settings){
var settings = $.extend();
var defaults = {
id: "scrollBody"
};
return this.each(function(defaults,settings){
var $this = $(this);
var Bool=false;
var Scrbody = $this.find(".scrollBody");
var Scro=Scrbody.find(".scrollBar");
var Scrp=Scro.find("p");
var Scrobd=Scrbody.find("#scrollMap");
var Scroul=Scrobd.find("ul");
var letter = Scrbody.prev();
var Scrp_Height = Scrp.outerHeight()/2;
var Num2=Scro.outerHeight()-Scrp.outerHeight();
var offsetX=0;
var offsetY=0;
Scrp.mousedown(function(e){
Bool=true;
});
$(document).mouseup(function(){
Bool=false;
});
$(document).mousemove(function(e){
if(Bool){
var top = Scro.offset().top;
var topHeight = top +Scro.outerHeight();
var value = $this.offset().top;
if(e.pageY>=top && e.pageY <= topHeight){
var Num1= e.pageY - value - Scro.position().top;
var y = Num1 - Scrp_Height;
}
if(y<=1){
Scrll(0);
Scrp.css("top",1);
}else if(y>=Num2){
Scrp.css("top",Num2);
Scrll(Num2);
}else{
Scrll(y);
}
}
});
function Scrll(y){
Scrp.css("top",y);
Scroul.css("margin-top",-(y/(Scro.outerHeight()-Scrp.outerHeight()))*(Scroul.outerHeight()-Scrobd.height()));
}
if(document.getElementById(settings.id).addEventListener)
document.getElementById(settings.id).addEventListener('DOMMouseScroll',wheel,true);
document.getElementById(settings.id).onmousewheel=wheel;
var Distance=Num2*0.1;
function wheel(e){
var evt = e || window.event;
var wheelDelta = evt.wheelDelta || evt.detail;
if(wheelDelta == -120 || wheelDelta == 3){
var Distances=Scrp.position().top+Distance;
if(Distances>=Num2){
Scrp.css("top",Num2);
Scrll(Num2);
}else{
Scrll(Distances);
}
return false;
}else if (wheelDelta == 120 || wheelDelta == -3){
var Distances=Scrp.position().top-Distance;
if(Distances<=1){
Scrll(0);
Scrp.css("top",1);
}else{
Scrll(Distances);
}
return false;
}
}
});
}
3 years ago
})(jQuery);