zoukankan      html  css  js  c++  java
  • 使用jQuery在屏幕上居中一个DIV

    文章目录

    我如何去使用jQuery在屏幕的中心设置<div>

    我喜欢给jQuery添加函数,所以这个函数将有助于:

    jQuery.fn.center = function () {
        this.css("position","absolute");
        this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) + 
                                                    $(window).scrollTop()) + "px");
        this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth()) / 2) + 
                                                    $(window).scrollLeft()) + "px");
        return this;
    }
    

    现在我们只能写:

    $(element).center();
    

    演示:小提琴(添加参数)

    我把一个jQuery插件在这里

    非常短的版本

    $('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('#myDiv').width() / 2)+'px'});
    

    简洁版本

    (function($){
        $.fn.extend({
            center: function () {
                return this.each(function() {
                    var top = ($(window).height() - $(this).outerHeight()) / 2;
                    var left = ($(window).width() - $(this).outerWidth()) / 2;
                    $(this).css({position:'absolute', margin:0, top: (top > 0 ? top : 0)+'px', left: (left > 0 ? left : 0)+'px'});
                });
            }
        }); 
    })(jQuery);
    

    由此代码激活:

    $('#mainDiv').center();
    

    插件版本

    (function($){
         $.fn.extend({
              center: function (options) {
                   var options =  $.extend({ // Default values
                        inside:window, // element, center into window
                        transition: 0, // millisecond, transition time 大专栏  使用jQuery在屏幕上居中一个DIV
                        minX:0, // pixel, minimum left element value
                        minY:0, // pixel, minimum top element value
                        withScrolling:true, // booleen, take care of the scrollbar (scrollTop)
                        vertical:true, // booleen, center vertical
                        horizontal:true // booleen, center horizontal
                   }, options);
                   return this.each(function() {
                        var props = {position:'absolute'};
                        if (options.vertical) {
                             var top = ($(options.inside).height() - $(this).outerHeight()) / 2;
                             if (options.withScrolling) top += $(options.inside).scrollTop() || 0;
                             top = (top > options.minY ? top : options.minY);
                             $.extend(props, {top: top+'px'});
                        }
                        if (options.horizontal) {
                              var left = ($(options.inside).width() - $(this).outerWidth()) / 2;
                              if (options.withScrolling) left += $(options.inside).scrollLeft() || 0;
                              left = (left > options.minX ? left : options.minX);
                              $.extend(props, {left: left+'px'});
                        }
                        if (options.transition > 0) $(this).animate(props, options.transition);
                        else $(this).css(props);
                        return $(this);
                   });
              }
         });
    })(jQuery);
    

    由此代码激活:

    $(document).ready(function(){
        $('#mainDiv').center();
        $(window).bind('resize', function() {
            $('#mainDiv').center({transition:300});
        });
    );
    

    是对的吗 ?

    从CSS技巧

    .center {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%); /* Yep! */
       48%;
      height: 59%;
    }
    

    未经作者同意,本文严禁转载,违者必究!

  • 相关阅读:
    POJ 1315 Don't Get Rooked
    POJ 2051 Argus
    POJ 1942 Paths on a Grid
    POJ 2151 Check the difficulty of problems
    POJ 3349 Snowflake Snow Snowflakes
    POJ 1753 Flip Game
    POJ 2392 Space Elevator
    POJ 2385 Apple Catching
    POJ 2356 Find a multiple
    POJ 2355 Railway tickets
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12026625.html
Copyright © 2011-2022 走看看