Advertisement
Peaser

jQuery center

May 4th, 2015
598
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. jQuery.fn.center = function () {
  2.     this.css("position","absolute");
  3.     this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) +
  4.                                                 $(window).scrollTop()) + "px");
  5.     this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth()) / 2) +
  6.                                                 $(window).scrollLeft()) + "px");
  7.     return this;
  8. }
  9.  
  10. $(element).center();
  11.  
  12.  
  13. $(document).ready(function(){
  14.     $('#mainDiv').center();
  15.     $(window).bind('resize', function() {
  16.         $('#mainDiv').center({transition:300});
  17.     });
  18. );
  19. /*
  20. .center {
  21.   position: absolute;
  22.   left: 50%;
  23.   top: 50%;
  24.   transform: translate(-50%, -50%); /* Yep! */
  25.   width: 48%;
  26.   height: 59%;
  27. }
  28.  
  29. */
  30.  
  31. $('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('#myDiv').width() / 2)+'px'});
  32.  
  33.  
  34.  
  35. (function($){
  36.     $.fn.extend({
  37.         center: function () {
  38.             return this.each(function() {
  39.                 var top = ($(window).height() - $(this).outerHeight()) / 2;
  40.                 var left = ($(window).width() - $(this).outerWidth()) / 2;
  41.                 $(this).css({position:'absolute', margin:0, top: (top > 0 ? top : 0)+'px', left: (left > 0 ? left : 0)+'px'});
  42.             });
  43.         }
  44.     });
  45. })(jQuery);
  46.  
  47. $('#mainDiv').center();
  48.  
  49. (function($){
  50.      $.fn.extend({
  51.           center: function (options) {
  52.                var options =  $.extend({ // Default values
  53.                     inside:window, // element, center into window
  54.                     transition: 0, // millisecond, transition time
  55.                     minX:0, // pixel, minimum left element value
  56.                     minY:0, // pixel, minimum top element value
  57.                     withScrolling:true, // booleen, take care of the scrollbar (scrollTop)
  58.                     vertical:true, // booleen, center vertical
  59.                     horizontal:true // booleen, center horizontal
  60.                }, options);
  61.                return this.each(function() {
  62.                     var props = {position:'absolute'};
  63.                     if (options.vertical) {
  64.                          var top = ($(options.inside).height() - $(this).outerHeight()) / 2;
  65.                          if (options.withScrolling) top += $(options.inside).scrollTop() || 0;
  66.                          top = (top > options.minY ? top : options.minY);
  67.                          $.extend(props, {top: top+'px'});
  68.                     }
  69.                     if (options.horizontal) {
  70.                           var left = ($(options.inside).width() - $(this).outerWidth()) / 2;
  71.                           if (options.withScrolling) left += $(options.inside).scrollLeft() || 0;
  72.                           left = (left > options.minX ? left : options.minX);
  73.                           $.extend(props, {left: left+'px'});
  74.                     }
  75.                     if (options.transition > 0) $(this).animate(props, options.transition);
  76.                     else $(this).css(props);
  77.                     return $(this);
  78.                });
  79.           }
  80.      });
  81. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement