MCPcopy
hub / github.com/malihu/malihu-custom-scrollbar-plugin / _scrollTo

Function _scrollTo

jquery.mCustomScrollbar.js:2036–2197  ·  view source on GitHub ↗
(el,to,options)

Source from the content-addressed store, hash-verified

2034 This is where the actual scrolling happens
2035 */
2036 _scrollTo=function(el,to,options){
2037 var d=el.data(pluginPfx),o=d.opt,
2038 defaults={
2039 trigger:"internal",
2040 dir:"y",
2041 scrollEasing:"mcsEaseOut",
2042 drag:false,
2043 dur:o.scrollInertia,
2044 overwrite:"all",
2045 callbacks:true,
2046 onStart:true,
2047 onUpdate:true,
2048 onComplete:true
2049 },
2050 options=$.extend(defaults,options),
2051 dur=[options.dur,(options.drag ? 0 : options.dur)],
2052 mCustomScrollBox=$("#mCSB_"+d.idx),
2053 mCSB_container=$("#mCSB_"+d.idx+"_container"),
2054 wrapper=mCSB_container.parent(),
2055 totalScrollOffsets=o.callbacks.onTotalScrollOffset ? _arr.call(el,o.callbacks.onTotalScrollOffset) : [0,0],
2056 totalScrollBackOffsets=o.callbacks.onTotalScrollBackOffset ? _arr.call(el,o.callbacks.onTotalScrollBackOffset) : [0,0];
2057 d.trigger=options.trigger;
2058 if(wrapper.scrollTop()!==0 || wrapper.scrollLeft()!==0){ /* always reset scrollTop/Left */
2059 $(".mCSB_"+d.idx+"_scrollbar").css("visibility","visible");
2060 wrapper.scrollTop(0).scrollLeft(0);
2061 }
2062 if(to==="_resetY" && !d.contentReset.y){
2063 /* callbacks: onOverflowYNone */
2064 if(_cb("onOverflowYNone")){o.callbacks.onOverflowYNone.call(el[0]);}
2065 d.contentReset.y=1;
2066 }
2067 if(to==="_resetX" && !d.contentReset.x){
2068 /* callbacks: onOverflowXNone */
2069 if(_cb("onOverflowXNone")){o.callbacks.onOverflowXNone.call(el[0]);}
2070 d.contentReset.x=1;
2071 }
2072 if(to==="_resetY" || to==="_resetX"){return;}
2073 if((d.contentReset.y || !el[0].mcs) && d.overflowed[0]){
2074 /* callbacks: onOverflowY */
2075 if(_cb("onOverflowY")){o.callbacks.onOverflowY.call(el[0]);}
2076 d.contentReset.x=null;
2077 }
2078 if((d.contentReset.x || !el[0].mcs) && d.overflowed[1]){
2079 /* callbacks: onOverflowX */
2080 if(_cb("onOverflowX")){o.callbacks.onOverflowX.call(el[0]);}
2081 d.contentReset.x=null;
2082 }
2083 if(o.snapAmount){ /* scrolling snapping */
2084 var snapAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : options.dir==="x" ? o.snapAmount[1] : o.snapAmount[0];
2085 to=_snapAmount(to,snapAmount,o.snapOffset);
2086 }
2087 switch(options.dir){
2088 case "x":
2089 var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_horizontal"),
2090 property="left",
2091 contentPos=mCSB_container[0].offsetLeft,
2092 limit=[
2093 mCustomScrollBox.width()-mCSB_container.outerWidth(false),

Callers 8

_resetContentPositionFunction · 0.70
_dragFunction · 0.70
_onMousewheelFunction · 0.70
_draggerRailFunction · 0.70
_focusFunction · 0.70
_onKeyboardFunction · 0.70
_onFunction · 0.70

Calls 7

_cbFunction · 0.70
_snapAmountFunction · 0.70
_mcsFunction · 0.70
_tweenToFunction · 0.70
_onDragClassesFunction · 0.70
_cbOffsetsFunction · 0.70
$Function · 0.50

Tested by

no test coverage detected