(el,to,options)
| 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), |
no test coverage detected