From d4cc88049ac0fc30504c56af588f50404f22e3ce Mon Sep 17 00:00:00 2001 From: Javier Alvarez Date: Tue, 20 Nov 2012 18:22:57 +0100 Subject: [PATCH] remove unnecessary custom-scroll javascript and added font_ie to assets precompile --- .../elements/autocomplete-ui.css.scss | 3 +- .../elements/background_importer.css.scss | 1 - .../elements/new_column_dialog.css.scss | 6 +- .../elements/upgrade_dialog.css.scss | 1 - .../plugins/jquery.mCustomScrollbar.css.scss | 199 ----- config/application.rb | 2 +- .../javascripts/jquery.mCustomScrollbar.js | 722 ------------------ 7 files changed, 5 insertions(+), 929 deletions(-) delete mode 100644 app/assets/stylesheets/plugins/jquery.mCustomScrollbar.css.scss delete mode 100644 vendor/assets/javascripts/jquery.mCustomScrollbar.js diff --git a/app/assets/stylesheets/elements/autocomplete-ui.css.scss b/app/assets/stylesheets/elements/autocomplete-ui.css.scss index 2b15094b04..d9806d0929 100644 --- a/app/assets/stylesheets/elements/autocomplete-ui.css.scss +++ b/app/assets/stylesheets/elements/autocomplete-ui.css.scss @@ -1,5 +1,4 @@ - - + /** * Autocomplete UI plugin css */ diff --git a/app/assets/stylesheets/elements/background_importer.css.scss b/app/assets/stylesheets/elements/background_importer.css.scss index b17226e318..2559fc9732 100644 --- a/app/assets/stylesheets/elements/background_importer.css.scss +++ b/app/assets/stylesheets/elements/background_importer.css.scss @@ -3,7 +3,6 @@ * Awesomico loader after uploading a table */ - @import "compass"; @import "../common/sprites"; diff --git a/app/assets/stylesheets/elements/new_column_dialog.css.scss b/app/assets/stylesheets/elements/new_column_dialog.css.scss index 781ee3f30f..3a81210637 100644 --- a/app/assets/stylesheets/elements/new_column_dialog.css.scss +++ b/app/assets/stylesheets/elements/new_column_dialog.css.scss @@ -5,9 +5,9 @@ .new_column_dialog { - @include default-input; - @include default-form-info; - @include default-select; + @include default-input(); + @include default-form-info(); + @include default-select(); input { width: 253px - 11*2px; diff --git a/app/assets/stylesheets/elements/upgrade_dialog.css.scss b/app/assets/stylesheets/elements/upgrade_dialog.css.scss index ba2a367033..d432fa2656 100644 --- a/app/assets/stylesheets/elements/upgrade_dialog.css.scss +++ b/app/assets/stylesheets/elements/upgrade_dialog.css.scss @@ -1,5 +1,4 @@ - /** * Upgrade dialog */ diff --git a/app/assets/stylesheets/plugins/jquery.mCustomScrollbar.css.scss b/app/assets/stylesheets/plugins/jquery.mCustomScrollbar.css.scss deleted file mode 100644 index 0f1dd8f468..0000000000 --- a/app/assets/stylesheets/plugins/jquery.mCustomScrollbar.css.scss +++ /dev/null @@ -1,199 +0,0 @@ -/* basic scrollbar styling */ -/* vertical scrollbar */ -.mCSB_container{ - width:auto; - margin-right:30px; - overflow:hidden; -} -.mCSB_container.mCS_no_scrollbar{ - margin-right:0; -} -.mCustomScrollBox .mCSB_scrollTools{ - width:16px; - height:100%; - top:0; - right:0; -} -.mCSB_scrollTools .mCSB_draggerContainer{ - height:100%; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; -} -.mCSB_scrollTools .mCSB_buttonUp+.mCSB_draggerContainer{ - padding-bottom:40px; -} -.mCSB_scrollTools .mCSB_draggerRail{ - width:2px; - height:100%; - margin:0 auto; - -webkit-border-radius:10px; - -moz-border-radius:10px; - border-radius:10px; -} -.mCSB_scrollTools .mCSB_dragger{ - cursor:pointer; - width:100%; - height:30px; -} -.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width:4px; - height:100%; - margin:0 auto; - -webkit-border-radius:10px; - -moz-border-radius:10px; - border-radius:10px; - text-align:center; -} -.mCSB_scrollTools .mCSB_buttonUp, -.mCSB_scrollTools .mCSB_buttonDown{ - height:20px; - overflow:hidden; - margin:0 auto; - cursor:pointer; -} -.mCSB_scrollTools .mCSB_buttonDown{ - bottom:0; - margin-top:-40px; -} -/* horizontal scrollbar */ -.mCSB_horizontal .mCSB_container{ - height:auto; - margin-right:0; - margin-bottom:30px; - overflow:hidden; -} -.mCSB_horizontal .mCSB_container.mCS_no_scrollbar{ - margin-bottom:0; -} -.mCSB_horizontal.mCustomScrollBox .mCSB_scrollTools{ - width:100%; - height:16px; - top:auto; - right:auto; - bottom:0; - left:0; - overflow:hidden; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerContainer{ - height:100%; - width:auto; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - overflow:hidden; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft+.mCSB_draggerContainer{ - padding-bottom:0; - padding-right:20px; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerRail{ - width:100%; - height:2px; - margin:7px 0; - -webkit-border-radius:10px; - -moz-border-radius:10px; - border-radius:10px; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger{ - width:30px; - height:100%; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width:100%; - height:4px; - margin:6px auto; - -webkit-border-radius:10px; - -moz-border-radius:10px; - border-radius:10px; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft, -.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight{ - width:20px; - height:100%; - overflow:hidden; - margin:0 auto; - cursor:pointer; - float:left; -} -.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight{ - right:0; - bottom:auto; - margin-left:-40px; - margin-top:-16px; - float:right; -} - -/* default scrollbar colors and backgrounds */ -.mCustomScrollBox .mCSB_scrollTools{ - opacity:0.75; -} -.mCustomScrollBox:hover .mCSB_scrollTools{ - opacity:1; -} -.mCSB_scrollTools .mCSB_draggerRail{ - background:#000; /* rgba fallback */ - background:rgba(0,0,0,0.4); - filter:"alpha(opacity=40)"; -ms-filter:"alpha(opacity=40)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background:#fff; /* rgba fallback */ - background:rgba(255,255,255,0.75); - filter:"alpha(opacity=75)"; -ms-filter:"alpha(opacity=75)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ - background:rgba(255,255,255,0.85); - filter:"alpha(opacity=85)"; -ms-filter:"alpha(opacity=85)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, -.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ - background:rgba(255,255,255,0.9); - filter:"alpha(opacity=90)"; -ms-filter:"alpha(opacity=90)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_buttonUp, -.mCSB_scrollTools .mCSB_buttonDown, -.mCSB_scrollTools .mCSB_buttonLeft, -.mCSB_scrollTools .mCSB_buttonRight{ - background-image:url(mCSB_buttons.png); - background-repeat:no-repeat; - opacity:0.4; - filter:"alpha(opacity=40)"; -ms-filter:"alpha(opacity=40)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_buttonUp{ - background-position:0 0; - /* - sprites locations are 0 0/-16px 0/-32px 0/-48px 0 (light) and -80px 0/-96px 0/-112px 0/-128px 0 (dark) - */ -} -.mCSB_scrollTools .mCSB_buttonDown{ - background-position:0 -20px; - /* - sprites locations are 0 -20px/-16px -20px/-32px -20px/-48px -20px (light) and -80px -20px/-96px -20px/-112px -20px/-128px -20px (dark) - */ -} -.mCSB_scrollTools .mCSB_buttonLeft{ - background-position:0 -40px; - /* - sprites locations are 0 -40px/-20px -40px/-40px -40px/-60px -40px (light) and -80px -40px/-100px -40px/-120px -40px/-140px -40px (dark) - */ -} -.mCSB_scrollTools .mCSB_buttonRight{ - background-position:0 -56px; - /* - sprites locations are 0 -56px/-20px -56px/-40px -56px/-60px -56px (light) and -80px -56px/-100px -56px/-120px -56px/-140px -56px (dark) - */ -} -.mCSB_scrollTools .mCSB_buttonUp:hover, -.mCSB_scrollTools .mCSB_buttonDown:hover, -.mCSB_scrollTools .mCSB_buttonLeft:hover, -.mCSB_scrollTools .mCSB_buttonRight:hover{ - opacity:0.75; - filter:"alpha(opacity=75)"; -ms-filter:"alpha(opacity=75)"; /* old ie */ -} -.mCSB_scrollTools .mCSB_buttonUp:active, -.mCSB_scrollTools .mCSB_buttonDown:active, -.mCSB_scrollTools .mCSB_buttonLeft:active, -.mCSB_scrollTools .mCSB_buttonRight:active{ - opacity:0.9; - filter:"alpha(opacity=90)"; -ms-filter:"alpha(opacity=90)"; /* old ie */ -} \ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 6e17594480..c9c6519f8c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -50,7 +50,7 @@ module CartoDB # Default setting is [/\w+\.(?!js|css).+/, /application.(css|js)$/] config.assets.precompile = %w( application.js cdb.js keys.js jquery.js dashboard.js table.js table_public.js login.js specs.js common.js embed.js ) - config.assets.precompile += %w( common.css keys.css leaflet.css tables.css reset.css map.css table.css front.css admin/table/view.css admin/table/table.css admin/table/map.css cdb/themes/css/cartodb.css front/oauth.css specs.css map/leaflet.ie.css plugins/tipsy.css ) + config.assets.precompile += %w( common.css keys.css leaflet.css tables.css map.css table.css front.css cdb/themes/css/cartodb.css specs.css map/leaflet.ie.css plugins/tipsy.css fonts_ie.css) config.assets.precompile += %w( *.jpg *.ico *.gif *.png *.eot *.otf *.svg *.woff *.ttf *.swf ) # Version of your assets, change this if you want to expire all your assets diff --git a/vendor/assets/javascripts/jquery.mCustomScrollbar.js b/vendor/assets/javascripts/jquery.mCustomScrollbar.js deleted file mode 100644 index 1e2b46e68a..0000000000 --- a/vendor/assets/javascripts/jquery.mCustomScrollbar.js +++ /dev/null @@ -1,722 +0,0 @@ -/* -== malihu jquery custom scrollbars plugin == -version: 2.1 -author: malihu (http://manos.malihu.gr) -plugin home: http://manos.malihu.gr/jquery-custom-content-scroller -*/ -(function($){ - var methods={ - init:function(options){ - var defaults={ - set_width:false, /*optional element width: boolean, pixels, percentage*/ - set_height:false, /*optional element height: boolean, pixels, percentage*/ - horizontalScroll:false, /*scroll horizontally: boolean*/ - scrollInertia:550, /*scrolling inertia: integer (milliseconds)*/ - scrollEasing:"easeOutCirc", /*scrolling easing: string*/ - mouseWheel:"auto", /*mousewheel support and velocity: boolean, "auto", integer*/ - autoDraggerLength:true, /*auto-adjust scrollbar dragger length: boolean*/ - scrollButtons:{ /*scroll buttons*/ - enable:false, /*scroll buttons support: boolean*/ - scrollType:"continuous", /*scroll buttons scrolling type: "continuous", "pixels"*/ - scrollSpeed:20, /*scroll buttons continuous scrolling speed: integer*/ - scrollAmount:40 /*scroll buttons pixels scroll amount: integer (pixels)*/ - }, - advanced:{ - updateOnBrowserResize:true, /*update scrollbars on browser resize (for layouts based on percentages): boolean*/ - updateOnContentResize:false, /*auto-update scrollbars on content resize (for dynamic content): boolean*/ - autoExpandHorizontalScroll:false /*auto-expand width for horizontal scrolling: boolean*/ - }, - callbacks:{ - onScroll:function(){}, /*user custom callback function on scroll event*/ - onTotalScroll:function(){}, /*user custom callback function on scroll end reached event*/ - onTotalScrollOffset:0 /*scroll end reached offset: integer (pixels)*/ - } - }, - options=$.extend(true,defaults,options); - /*check for touch device*/ - $(document).data("mCS-is-touch-device",false); - if(is_touch_device()){ - $(document).data("mCS-is-touch-device",true); - } - function is_touch_device(){ - return !!("ontouchstart" in window) ? 1 : 0; - } - return this.each(function(){ - var $this=$(this); - /*set element width/height, create markup for custom scrollbars, add classes*/ - if(options.set_width){ - $this.css("width",options.set_width); - } - if(options.set_height){ - $this.css("height",options.set_height); - } - if(!$(document).data("mCustomScrollbar-index")){ - $(document).data("mCustomScrollbar-index","1"); - }else{ - var mCustomScrollbarIndex=parseInt($(document).data("mCustomScrollbar-index")); - $(document).data("mCustomScrollbar-index",mCustomScrollbarIndex+1); - } - $this.wrapInner("
").addClass("mCustomScrollbar _mCS_"+$(document).data("mCustomScrollbar-index")); - var mCustomScrollBox=$this.children(".mCustomScrollBox"); - if(options.horizontalScroll){ - mCustomScrollBox.addClass("mCSB_horizontal").wrapInner("
"); - var mCSB_h_wrapper=mCustomScrollBox.children(".mCSB_h_wrapper"); - mCSB_h_wrapper.wrapInner("
").children(".mCSB_container").css({"width":mCSB_h_wrapper.children().outerWidth(),"position":"relative"}).unwrap(); - }else{ - mCustomScrollBox.wrapInner("
"); - } - var mCSB_container=mCustomScrollBox.children(".mCSB_container"); - if(!$(document).data("mCS-is-touch-device")){ /*not touch device - apply custom scrollbars functionality*/ - mCSB_container.after("
"); - var mCSB_scrollTools=mCustomScrollBox.children(".mCSB_scrollTools"), - mCSB_draggerContainer=mCSB_scrollTools.children(".mCSB_draggerContainer"), - mCSB_dragger=mCSB_draggerContainer.children(".mCSB_dragger"); - if(options.horizontalScroll){ - mCSB_dragger.data("minDraggerWidth",mCSB_dragger.width()); - }else{ - mCSB_dragger.data("minDraggerHeight",mCSB_dragger.height()); - } - if(options.scrollButtons.enable){ - if(options.horizontalScroll){ - mCSB_scrollTools.prepend("").append(""); - }else{ - mCSB_scrollTools.prepend("").append(""); - } - } - /*mCustomScrollBox scrollTop and scrollLeft is always 0 to prevent browser focus scrolling*/ - mCustomScrollBox.bind("scroll",function(){ - mCustomScrollBox.scrollTop(0).scrollLeft(0); - }); - /*store element options and update element*/ - $this.data({ - "horizontalScroll":options.horizontalScroll, - "scrollInertia":options.scrollInertia, - "scrollEasing":options.scrollEasing, - "mouseWheel":options.mouseWheel, - "autoDraggerLength":options.autoDraggerLength, - "scrollButtons-enable":options.scrollButtons.enable, - "scrollButtons-scrollType":options.scrollButtons.scrollType, - "scrollButtons-scrollSpeed":options.scrollButtons.scrollSpeed, - "scrollButtons-scrollAmount":options.scrollButtons.scrollAmount, - "autoExpandHorizontalScroll":options.advanced.autoExpandHorizontalScroll, - "onScroll-Callback":options.callbacks.onScroll, - "onTotalScroll-Callback":options.callbacks.onTotalScroll, - "onTotalScroll-Offset":options.callbacks.onTotalScrollOffset - }).mCustomScrollbar("update"); - /*window resize fn (for layouts based on percentages)*/ - if(options.advanced.updateOnBrowserResize){ - var mCSB_resizeTimeout; - $(window).resize(function(){ - if(mCSB_resizeTimeout){ - clearTimeout(mCSB_resizeTimeout); - } - mCSB_resizeTimeout=setTimeout(function(){ - $this.mCustomScrollbar("update"); - },150); - }); - } - }else{ /*is touch device*/ - /*check for mobile os/browser not supporting overflow:auto (Android 2.xx)*/ - var ua=navigator.userAgent; - if(ua.indexOf("Android")!=-1){ - var androidversion=parseFloat(ua.slice(ua.indexOf("Android")+8)); - if(androidversion<3){ - touchScroll("mCSB_"+$(document).data("mCustomScrollbar-index")); /*non overflow:auto fn*/ - }else{ - mCustomScrollBox.css({"overflow":"auto","-webkit-overflow-scrolling":"touch"}); - } - }else{ - mCustomScrollBox.css({"overflow":"auto","-webkit-overflow-scrolling":"touch"}); - } - mCSB_container.addClass("mCS_no_scrollbar mCS_touch"); - $this.data({ - "horizontalScroll":options.horizontalScroll, - "scrollInertia":options.scrollInertia, - "scrollEasing":options.scrollEasing, - "autoExpandHorizontalScroll":options.advanced.autoExpandHorizontalScroll, - "onScroll-Callback":options.callbacks.onScroll, - "onTotalScroll-Callback":options.callbacks.onTotalScroll, - "onTotalScroll-Offset":options.callbacks.onTotalScrollOffset - }); - mCustomScrollBox.scroll(function(){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); /*user custom callback functions*/ - }); - /*non overflow:auto fn - (source: http://chris-barr.com/index.php/entry/scrolling_a_overflowauto_element_on_a_touch_screen_device/)*/ - function touchScroll(id){ - var el=document.getElementById(id), - scrollStartPosY=0, - scrollStartPosX=0; - document.getElementById(id).addEventListener("touchstart",function(event){ - scrollStartPosY=this.scrollTop+event.touches[0].pageY; - scrollStartPosX=this.scrollLeft+event.touches[0].pageX; - /*event.preventDefault(); // Keep this remarked so you can click on buttons and links in the div*/ - },false); - document.getElementById(id).addEventListener("touchmove",function(event){ - /*These if statements allow the full page to scroll (not just the div) if they are - at the top of the div scroll or the bottom of the div scroll - The -5 and +5 below are in case they are trying to scroll the page sideways - but their finger moves a few pixels down or up. The event.preventDefault() function - will not be called in that case so that the whole page can scroll.*/ - if((this.scrollTopscrollStartPosY+5)) - event.preventDefault(); - if((this.scrollLeftscrollStartPosX+5)) - event.preventDefault(); - this.scrollTop=scrollStartPosY-event.touches[0].pageY; - this.scrollLeft=scrollStartPosX-event.touches[0].pageX; - },false); - } - } - /*content resize fn (for dynamically generated content)*/ - if(options.advanced.updateOnContentResize){ - var mCSB_onContentResize; - if(options.horizontalScroll){ - var mCSB_containerOldSize=mCSB_container.outerWidth(); - if(is_touch_device()){ - /*disable iOS webkit inertia for smooth scrolling*/ - mCustomScrollBox.css({"-webkit-overflow-scrolling":"auto"}); - } - }else{ - var mCSB_containerOldSize=mCSB_container.outerHeight(); - } - mCSB_onContentResize=setInterval(function(){ - if(options.horizontalScroll){ - if(options.advanced.autoExpandHorizontalScroll){ - mCSB_container.css({"position":"absolute","width":"auto"}).wrap("
").css({"width":mCSB_container.outerWidth(),"position":"relative"}).unwrap(); - } - var mCSB_containerNewSize=mCSB_container.outerWidth(); - }else{ - var mCSB_containerNewSize=mCSB_container.outerHeight(); - } - if(mCSB_containerNewSize!=mCSB_containerOldSize){ - $this.mCustomScrollbar("update"); - mCSB_containerOldSize=mCSB_containerNewSize; - } - },300); - } - }); - }, - update:function(){ - var $this=$(this), - mCustomScrollBox=$this.children(".mCustomScrollBox"), - mCSB_container=mCustomScrollBox.children(".mCSB_container"); - if(!$(document).data("mCS-is-touch-device")){ - mCSB_container.removeClass("mCS_no_scrollbar"); - } - var mCSB_scrollTools=mCustomScrollBox.children(".mCSB_scrollTools"), - mCSB_draggerContainer=mCSB_scrollTools.children(".mCSB_draggerContainer"), - mCSB_dragger=mCSB_draggerContainer.children(".mCSB_dragger"); - if($this.data("horizontalScroll")){ - var mCSB_buttonLeft=mCSB_scrollTools.children(".mCSB_buttonLeft"), - mCSB_buttonRight=mCSB_scrollTools.children(".mCSB_buttonRight"), - mCustomScrollBoxW=mCustomScrollBox.width(); - if($this.data("autoExpandHorizontalScroll")){ - mCSB_container.css({"position":"absolute","width":"auto"}).wrap("
").css({"width":mCSB_container.outerWidth(),"position":"relative"}).unwrap(); - } - var mCSB_containerW=mCSB_container.outerWidth(); - }else{ - var mCSB_buttonUp=mCSB_scrollTools.children(".mCSB_buttonUp"), - mCSB_buttonDown=mCSB_scrollTools.children(".mCSB_buttonDown"), - mCustomScrollBoxH=mCustomScrollBox.height(), - mCSB_containerH=mCSB_container.outerHeight(); - } - if(mCSB_containerH>mCustomScrollBoxH && !$this.data("horizontalScroll") && !$(document).data("mCS-is-touch-device")){ /*content needs vertical scrolling*/ - mCSB_scrollTools.css("display","block"); - var mCSB_draggerContainerH=mCSB_draggerContainer.height(); - /*auto adjust scrollbar dragger length analogous to content*/ - if($this.data("autoDraggerLength")){ - var draggerH=Math.round(mCustomScrollBoxH/mCSB_containerH*mCSB_draggerContainerH), - minDraggerH=mCSB_dragger.data("minDraggerHeight"); - if(draggerH<=minDraggerH){ /*min dragger height*/ - mCSB_dragger.css({"height":minDraggerH}); - }else if(draggerH>=mCSB_draggerContainerH-10){ /*max dragger height*/ - var mCSB_draggerContainerMaxH=mCSB_draggerContainerH-10; - mCSB_dragger.css({"height":mCSB_draggerContainerMaxH}); - }else{ - mCSB_dragger.css({"height":draggerH}); - } - mCSB_dragger.children(".mCSB_dragger_bar").css({"line-height":mCSB_dragger.height()+"px"}); - } - var mCSB_draggerH=mCSB_dragger.height(), - /*calculate and store scroll amount*/ - scrollAmount=(mCSB_containerH-mCustomScrollBoxH)/(mCSB_draggerContainerH-mCSB_draggerH); - $this.data("scrollAmount",scrollAmount); - /*add scrolling*/ - $this.mCustomScrollbar("scrolling",mCustomScrollBox,mCSB_container,mCSB_draggerContainer,mCSB_dragger,mCSB_buttonUp,mCSB_buttonDown,mCSB_buttonLeft,mCSB_buttonRight); - /*scroll*/ - var mCSB_containerP=Math.abs(Math.round(mCSB_container.position().top)); - $this.mCustomScrollbar("scrollTo",mCSB_containerP,{callback:false}); - }else if(mCSB_containerW>mCustomScrollBoxW && $this.data("horizontalScroll") && !$(document).data("mCS-is-touch-device")){ /*content needs horizontal scrolling*/ - mCSB_scrollTools.css("display","block"); - var mCSB_draggerContainerW=mCSB_draggerContainer.width(); - /*auto adjust scrollbar dragger length analogous to content*/ - if($this.data("autoDraggerLength")){ - var draggerW=Math.round(mCustomScrollBoxW/mCSB_containerW*mCSB_draggerContainerW), - minDraggerW=mCSB_dragger.data("minDraggerWidth"); - if(draggerW<=minDraggerW){ /*min dragger height*/ - mCSB_dragger.css({"width":minDraggerW}); - }else if(draggerW>=mCSB_draggerContainerW-10){ /*max dragger height*/ - var mCSB_draggerContainerMaxW=mCSB_draggerContainerW-10; - mCSB_dragger.css({"width":mCSB_draggerContainerMaxW}); - }else{ - mCSB_dragger.css({"width":draggerW}); - } - } - var mCSB_draggerW=mCSB_dragger.width(), - /*calculate and store scroll amount*/ - scrollAmount=(mCSB_containerW-mCustomScrollBoxW)/(mCSB_draggerContainerW-mCSB_draggerW); - $this.data("scrollAmount",scrollAmount); - /*add scrolling*/ - $this.mCustomScrollbar("scrolling",mCustomScrollBox,mCSB_container,mCSB_draggerContainer,mCSB_dragger,mCSB_buttonUp,mCSB_buttonDown,mCSB_buttonLeft,mCSB_buttonRight); - /*scroll*/ - var mCSB_containerP=Math.abs(Math.round(mCSB_container.position().left)); - $this.mCustomScrollbar("scrollTo",mCSB_containerP,{callback:false}); - }else{ /*content does not need scrolling*/ - /*unbind events, reset content position, hide scrollbars, remove classes*/ - mCustomScrollBox.unbind("mousewheel"); - mCustomScrollBox.unbind("focusin"); - if($this.data("horizontalScroll")){ - mCSB_dragger.add(mCSB_container).css("left",0); - }else{ - mCSB_dragger.add(mCSB_container).css("top",0); - } - mCSB_scrollTools.css("display","none"); - mCSB_container.addClass("mCS_no_scrollbar"); - } - }, - scrolling:function(mCustomScrollBox,mCSB_container,mCSB_draggerContainer,mCSB_dragger,mCSB_buttonUp,mCSB_buttonDown,mCSB_buttonLeft,mCSB_buttonRight){ - var $this=$(this); - /*drag scrolling*/ - if(!mCSB_dragger.hasClass("ui-draggable")){ /*apply drag function once*/ - if($this.data("horizontalScroll")){ - var draggableAxis="x"; - }else{ - var draggableAxis="y"; - } - mCSB_dragger.draggable({ - axis:draggableAxis, - containment:"parent", - drag:function(event,ui){ - $this.mCustomScrollbar("scroll"); - mCSB_dragger.addClass("mCSB_dragger_onDrag"); - }, - stop:function(event,ui){ - mCSB_dragger.removeClass("mCSB_dragger_onDrag"); - } - }); - } - mCSB_draggerContainer.unbind("click").bind("click",function(e){ - if($this.data("horizontalScroll")){ - var mouseCoord=(e.pageX-mCSB_draggerContainer.offset().left); - if(mouseCoord(mCSB_dragger.position().left+mCSB_dragger.width())){ - var scrollToPos=mouseCoord; - if(scrollToPos>=mCSB_draggerContainer.width()-mCSB_dragger.width()){ /*max dragger position is bottom*/ - scrollToPos=mCSB_draggerContainer.width()-mCSB_dragger.width(); - } - mCSB_dragger.css("left",scrollToPos); - $this.mCustomScrollbar("scroll"); - } - }else{ - var mouseCoord=(e.pageY-mCSB_draggerContainer.offset().top); - if(mouseCoord(mCSB_dragger.position().top+mCSB_dragger.height())){ - var scrollToPos=mouseCoord; - if(scrollToPos>=mCSB_draggerContainer.height()-mCSB_dragger.height()){ /*max dragger position is bottom*/ - scrollToPos=mCSB_draggerContainer.height()-mCSB_dragger.height(); - } - mCSB_dragger.css("top",scrollToPos); - $this.mCustomScrollbar("scroll"); - } - } - }); - /*mousewheel scrolling*/ - if($this.data("mouseWheel")){ - var mousewheelVel=$this.data("mouseWheel"); - if($this.data("mouseWheel")==="auto"){ - mousewheelVel=8; /*default mousewheel velocity*/ - /*check for safari browser on mac osx to lower mousewheel velocity*/ - var os=navigator.userAgent; - if(os.indexOf("Mac")!=-1 && os.indexOf("Safari")!=-1 && os.indexOf("AppleWebKit")!=-1 && os.indexOf("Chrome")==-1){ - mousewheelVel=1; - } - } - mCustomScrollBox.unbind("mousewheel").bind("mousewheel",function(event,delta){ - event.preventDefault(); - var vel=Math.abs(delta*mousewheelVel); - if($this.data("horizontalScroll")){ - var posX=mCSB_dragger.position().left-(delta*vel); - mCSB_dragger.css("left",posX); - if(mCSB_dragger.position().left<0){ - mCSB_dragger.css("left",0); - } - var mCSB_draggerContainerW=mCSB_draggerContainer.width(), - mCSB_draggerW=mCSB_dragger.width(); - if(mCSB_dragger.position().left>mCSB_draggerContainerW-mCSB_draggerW){ - mCSB_dragger.css("left",mCSB_draggerContainerW-mCSB_draggerW); - } - }else{ - var posY=mCSB_dragger.position().top-(delta*vel); - mCSB_dragger.css("top",posY); - if(mCSB_dragger.position().top<0){ - mCSB_dragger.css("top",0); - } - var mCSB_draggerContainerH=mCSB_draggerContainer.height(), - mCSB_draggerH=mCSB_dragger.height(); - if(mCSB_dragger.position().top>mCSB_draggerContainerH-mCSB_draggerH){ - mCSB_dragger.css("top",mCSB_draggerContainerH-mCSB_draggerH); - } - } - $this.mCustomScrollbar("scroll"); - }); - } - /*buttons scrolling*/ - if($this.data("scrollButtons-enable")){ - if($this.data("scrollButtons-scrollType")==="pixels"){ /*scroll by pixels*/ - var pixelsScrollTo; - if($.browser.msie && parseInt($.browser.version)<9){ /*stupid ie8*/ - $this.data("scrollInertia",0); - } - if($this.data("horizontalScroll")){ - mCSB_buttonRight.add(mCSB_buttonLeft).unbind("click mousedown mouseup mouseout",mCSB_buttonRight_stop,mCSB_buttonLeft_stop); - /*scroll right*/ - mCSB_buttonRight.bind("click",function(e){ - e.preventDefault(); - if(!mCSB_container.is(":animated")){ - pixelsScrollTo=Math.abs(mCSB_container.position().left)+$this.data("scrollButtons-scrollAmount"); - $this.mCustomScrollbar("scrollTo",pixelsScrollTo); - } - }); - /*scroll left*/ - mCSB_buttonLeft.bind("click",function(e){ - e.preventDefault(); - if(!mCSB_container.is(":animated")){ - pixelsScrollTo=Math.abs(mCSB_container.position().left)-$this.data("scrollButtons-scrollAmount"); - if(mCSB_container.position().left>=-$this.data("scrollButtons-scrollAmount")){ - pixelsScrollTo="left"; - } - $this.mCustomScrollbar("scrollTo",pixelsScrollTo); - } - }); - }else{ - mCSB_buttonDown.add(mCSB_buttonUp).unbind("click mousedown mouseup mouseout",mCSB_buttonDown_stop,mCSB_buttonUp_stop); - /*scroll down*/ - mCSB_buttonDown.bind("click",function(e){ - e.preventDefault(); - if(!mCSB_container.is(":animated")){ - pixelsScrollTo=Math.abs(mCSB_container.position().top)+$this.data("scrollButtons-scrollAmount"); - $this.mCustomScrollbar("scrollTo",pixelsScrollTo); - } - }); - /*scroll up*/ - mCSB_buttonUp.bind("click",function(e){ - e.preventDefault(); - if(!mCSB_container.is(":animated")){ - pixelsScrollTo=Math.abs(mCSB_container.position().top)-$this.data("scrollButtons-scrollAmount"); - if(mCSB_container.position().top>=-$this.data("scrollButtons-scrollAmount")){ - pixelsScrollTo="top"; - } - $this.mCustomScrollbar("scrollTo",pixelsScrollTo); - } - }); - } - }else{ /*continuous scrolling*/ - if($this.data("horizontalScroll")){ - mCSB_buttonRight.add(mCSB_buttonLeft).unbind("click mousedown mouseup mouseout",mCSB_buttonRight_stop,mCSB_buttonLeft_stop); - /*scroll right*/ - var mCSB_buttonScrollRight, - mCSB_draggerContainerW=mCSB_draggerContainer.width(), - mCSB_draggerW=mCSB_dragger.width(); - mCSB_buttonRight.bind("mousedown",function(e){ - e.preventDefault(); - var draggerScrollTo=mCSB_draggerContainerW-mCSB_draggerW; - mCSB_buttonScrollRight=setInterval(function(){ - var scrollToSpeed=Math.abs(mCSB_dragger.position().left-draggerScrollTo)*(100/$this.data("scrollButtons-scrollSpeed")); - mCSB_dragger.stop().animate({left:draggerScrollTo},scrollToSpeed,"linear"); - $this.mCustomScrollbar("scroll"); - },20); - }); - var mCSB_buttonRight_stop=function(e){ - e.preventDefault(); - clearInterval(mCSB_buttonScrollRight); - mCSB_dragger.stop(); - } - mCSB_buttonRight.bind("mouseup mouseout",mCSB_buttonRight_stop); - /*scroll left*/ - var mCSB_buttonScrollLeft; - mCSB_buttonLeft.bind("mousedown",function(e){ - e.preventDefault(); - var draggerScrollTo=0; - mCSB_buttonScrollLeft=setInterval(function(){ - var scrollToSpeed=Math.abs(mCSB_dragger.position().left-draggerScrollTo)*(100/$this.data("scrollButtons-scrollSpeed")); - mCSB_dragger.stop().animate({left:draggerScrollTo},scrollToSpeed,"linear"); - $this.mCustomScrollbar("scroll"); - },20); - }); - var mCSB_buttonLeft_stop=function(e){ - e.preventDefault(); - clearInterval(mCSB_buttonScrollLeft); - mCSB_dragger.stop(); - } - mCSB_buttonLeft.bind("mouseup mouseout",mCSB_buttonLeft_stop); - }else{ - mCSB_buttonDown.add(mCSB_buttonUp).unbind("click mousedown mouseup mouseout",mCSB_buttonDown_stop,mCSB_buttonUp_stop); - /*scroll down*/ - var mCSB_buttonScrollDown, - mCSB_draggerContainerH=mCSB_draggerContainer.height(), - mCSB_draggerH=mCSB_dragger.height(); - mCSB_buttonDown.bind("mousedown",function(e){ - e.preventDefault(); - var draggerScrollTo=mCSB_draggerContainerH-mCSB_draggerH; - mCSB_buttonScrollDown=setInterval(function(){ - var scrollToSpeed=Math.abs(mCSB_dragger.position().top-draggerScrollTo)*(100/$this.data("scrollButtons-scrollSpeed")); - mCSB_dragger.stop().animate({top:draggerScrollTo},scrollToSpeed,"linear"); - $this.mCustomScrollbar("scroll"); - },20); - }); - var mCSB_buttonDown_stop=function(e){ - e.preventDefault(); - clearInterval(mCSB_buttonScrollDown); - mCSB_dragger.stop(); - } - mCSB_buttonDown.bind("mouseup mouseout",mCSB_buttonDown_stop); - /*scroll up*/ - var mCSB_buttonScrollUp; - mCSB_buttonUp.bind("mousedown",function(e){ - e.preventDefault(); - var draggerScrollTo=0; - mCSB_buttonScrollUp=setInterval(function(){ - var scrollToSpeed=Math.abs(mCSB_dragger.position().top-draggerScrollTo)*(100/$this.data("scrollButtons-scrollSpeed")); - mCSB_dragger.stop().animate({top:draggerScrollTo},scrollToSpeed,"linear"); - $this.mCustomScrollbar("scroll"); - },20); - }); - var mCSB_buttonUp_stop=function(e){ - e.preventDefault(); - clearInterval(mCSB_buttonScrollUp); - mCSB_dragger.stop(); - } - mCSB_buttonUp.bind("mouseup mouseout",mCSB_buttonUp_stop); - } - } - } - /*scrolling on element focus (e.g. via TAB key)*/ - mCustomScrollBox.unbind("focusin").bind("focusin",function(){ - mCustomScrollBox.scrollTop(0).scrollLeft(0); - var focusedElem=$(document.activeElement); - if(focusedElem.is("input,textarea,select,button,a[tabindex],area,object")){ - if($this.data("horizontalScroll")){ - var mCSB_containerX=mCSB_container.position().left, - focusedElemX=focusedElem.position().left, - mCustomScrollBoxW=mCustomScrollBox.width(), - focusedElemW=focusedElem.outerWidth(); - if(mCSB_containerX+focusedElemX>=0 && mCSB_containerX+focusedElemX<=mCustomScrollBoxW-focusedElemW){ - /*just focus...*/ - }else{ /*scroll, then focus*/ - var moveDragger=focusedElemX/$this.data("scrollAmount"); - if(moveDragger>=mCSB_draggerContainer.width()-mCSB_dragger.width()){ /*max dragger position is bottom*/ - moveDragger=mCSB_draggerContainer.width()-mCSB_dragger.width(); - } - mCSB_dragger.css("left",moveDragger); - $this.mCustomScrollbar("scroll"); - } - }else{ - var mCSB_containerY=mCSB_container.position().top, - focusedElemY=focusedElem.position().top, - mCustomScrollBoxH=mCustomScrollBox.height(), - focusedElemH=focusedElem.outerHeight(); - if(mCSB_containerY+focusedElemY>=0 && mCSB_containerY+focusedElemY<=mCustomScrollBoxH-focusedElemH){ - /*just focus...*/ - }else{ /*scroll, then focus*/ - var moveDragger=focusedElemY/$this.data("scrollAmount"); - if(moveDragger>=mCSB_draggerContainer.height()-mCSB_dragger.height()){ /*max dragger position is bottom*/ - moveDragger=mCSB_draggerContainer.height()-mCSB_dragger.height(); - } - mCSB_dragger.css("top",moveDragger); - $this.mCustomScrollbar("scroll"); - } - } - } - }); - }, - scroll:function(updated){ - var $this=$(this), - mCSB_dragger=$this.find(".mCSB_dragger"), - mCSB_container=$this.find(".mCSB_container"), - mCustomScrollBox=$this.find(".mCustomScrollBox"); - if($this.data("horizontalScroll")){ - var draggerX=mCSB_dragger.position().left, - targX=-draggerX*$this.data("scrollAmount"), - thisX=mCSB_container.position().left, - posX=Math.round(thisX-targX); - }else{ - var draggerY=mCSB_dragger.position().top, - targY=-draggerY*$this.data("scrollAmount"), - thisY=mCSB_container.position().top, - posY=Math.round(thisY-targY); - } - if($.browser.webkit){ /*fix webkit zoom and jquery animate*/ - var screenCssPixelRatio=(window.outerWidth-8)/window.innerWidth, - isZoomed=(screenCssPixelRatio<.98 || screenCssPixelRatio>1.02); - } - if($this.data("scrollInertia")===0 || isZoomed){ - if($this.data("horizontalScroll")){ - mCSB_container.css("left",targX); - }else{ - mCSB_container.css("top",targY); - } - if(!updated){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); /*user custom callback functions*/ - } - }else{ - if($this.data("horizontalScroll")){ - mCSB_container.stop().animate({left: "-="+posX},$this.data("scrollInertia"),$this.data("scrollEasing"),function(){ - if(!updated){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); /*user custom callback functions*/ - } - }); - }else{ - mCSB_container.stop().animate({top: "-="+posY},$this.data("scrollInertia"),$this.data("scrollEasing"),function(){ - if(!updated){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); /*user custom callback functions*/ - } - }); - } - } - }, - scrollTo:function(scrollTo,options){ - var defaults={ - moveDragger:false, - callback:true - }, - options=$.extend(defaults,options), - $this=$(this), - scrollToPos, - mCustomScrollBox=$this.find(".mCustomScrollBox"), - mCSB_container=mCustomScrollBox.children(".mCSB_container"); - if(!$(document).data("mCS-is-touch-device")){ - var mCSB_draggerContainer=$this.find(".mCSB_draggerContainer"), - mCSB_dragger=mCSB_draggerContainer.children(".mCSB_dragger"); - } - var targetPos; - if(scrollTo){ - if(typeof(scrollTo)==="number"){ /*if integer, scroll by number of pixels*/ - if(options.moveDragger){ /*scroll dragger*/ - scrollToPos=scrollTo; - }else{ /*scroll content by default*/ - targetPos=scrollTo; - scrollToPos=Math.round(targetPos/$this.data("scrollAmount")); - } - }else if(typeof(scrollTo)==="string"){ /*if string, scroll by element position*/ - var target; - if(scrollTo==="top"){ /*scroll to top*/ - target=0; - }else if(scrollTo==="bottom" && !$this.data("horizontalScroll")){ /*scroll to bottom*/ - target=mCSB_container.outerHeight()-mCustomScrollBox.height(); - }else if(scrollTo==="left"){ /*scroll to left*/ - target=0; - }else if(scrollTo==="right" && $this.data("horizontalScroll")){ /*scroll to right*/ - target=mCSB_container.outerWidth()-mCustomScrollBox.width(); - }else if(scrollTo==="first"){ /*scroll to first element position*/ - target=$this.find(".mCSB_container").find(":first"); - }else if(scrollTo==="last"){ /*scroll to last element position*/ - target=$this.find(".mCSB_container").find(":last"); - }else{ /*scroll to element position*/ - target=$this.find(scrollTo); - } - if(target.length===1){ /*if such unique element exists, scroll to it*/ - if($this.data("horizontalScroll")){ - targetPos=target.position().left; - }else{ - targetPos=target.position().top; - } - if($(document).data("mCS-is-touch-device")){ - scrollToPos=targetPos; - }else{ - scrollToPos=Math.ceil(targetPos/$this.data("scrollAmount")); - } - }else{ - scrollToPos=target; - } - } - /*scroll to*/ - if($(document).data("mCS-is-touch-device")){ /*is touch device*/ - if($this.data("horizontalScroll")){ - mCustomScrollBox.stop().animate({scrollLeft:scrollToPos},$this.data("scrollInertia"),$this.data("scrollEasing"),function(){ - if(options.callback){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); - } - }); - }else{ - mCustomScrollBox.stop().animate({scrollTop:scrollToPos},$this.data("scrollInertia"),$this.data("scrollEasing"),function(){ - if(options.callback){ - $this.mCustomScrollbar("callbacks",mCustomScrollBox,mCSB_container); - } - }); - } - }else{ /*not touch device*/ - if($this.data("horizontalScroll")){ - if(scrollToPos>=mCSB_draggerContainer.width()-mCSB_dragger.width()){ /*max dragger position is bottom*/ - scrollToPos=mCSB_draggerContainer.width()-mCSB_dragger.width(); - } - mCSB_dragger.css("left",scrollToPos); - }else{ - if(scrollToPos>=mCSB_draggerContainer.height()-mCSB_dragger.height()){ /*max dragger position is bottom*/ - scrollToPos=mCSB_draggerContainer.height()-mCSB_dragger.height(); - } - mCSB_dragger.css("top",scrollToPos); - } - if(options.callback){ - $this.mCustomScrollbar("scroll"); - }else{ - $this.mCustomScrollbar("scroll",true); - } - } - - } - }, - callbacks:function(mCustomScrollBox,mCSB_container){ - var $this=$(this); - if(!$(document).data("mCS-is-touch-device")){ /*not touch device*/ - if($this.data("horizontalScroll")){ - var mCSB_containerX=Math.round(mCSB_container.position().left); - if(mCSB_containerX<0 && mCSB_containerX<=mCustomScrollBox.width()-mCSB_container.outerWidth()+$this.data("onTotalScroll-Offset")){ - $this.data("onTotalScroll-Callback").call(); - }else{ - $this.data("onScroll-Callback").call(); - } - }else{ - var mCSB_containerY=Math.round(mCSB_container.position().top); - if(mCSB_containerY<0 && mCSB_containerY<=mCustomScrollBox.height()-mCSB_container.outerHeight()+$this.data("onTotalScroll-Offset")){ - $this.data("onTotalScroll-Callback").call(); - }else{ - $this.data("onScroll-Callback").call(); - } - } - }else{ /*is touch device*/ - if($this.data("horizontalScroll")){ - var mCustomScrollBoxX=Math.round(mCustomScrollBox.scrollLeft()); - if(mCustomScrollBoxX>0 && mCustomScrollBoxX>=mCSB_container.outerWidth()-$this.width()-$this.data("onTotalScroll-Offset")){ - $this.data("onTotalScroll-Callback").call(); - }else{ - $this.data("onScroll-Callback").call(); - } - }else{ - var mCustomScrollBoxY=Math.round(mCustomScrollBox.scrollTop()); - if(mCustomScrollBoxY>0 && mCustomScrollBoxY>=mCSB_container.outerHeight()-$this.height()-$this.data("onTotalScroll-Offset")){ - $this.data("onTotalScroll-Callback").call(); - }else{ - $this.data("onScroll-Callback").call(); - } - } - } - } - } - $.fn.mCustomScrollbar=function(method){ - if(methods[method]){ - return methods[method].apply(this,Array.prototype.slice.call(arguments,1)); - }else if(typeof method==="object" || !method){ - return methods.init.apply(this,arguments); - }else{ - $.error("Method "+method+" does not exist"); - } - }; -})(jQuery); \ No newline at end of file