оживить div и расширить из центра - PullRequest
2 голосов
/ 13 июля 2011

У меня есть простой код, который расширяет div по горизонтали и по вертикали от центра, но он расширяется только влево или вниз, я хочу, чтобы он расширялся в обе стороны (влево = 50px, справа = 50px) или (top = 50px, bottom = 50px) от центра с общим значением, равным 100px. вот код:

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
    background-color:#bca;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    background-repeat: no-repeat;
    background-position: center center;
    border:1px solid green;
    padding:10px;
}
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button id="go">&raquo; Run</button>

<div id="block">Hello!</div>
<script>


$("#go").click(function(){
  $("#block").animate({
    width: "100px",
    height: "100px",
    opacity: 0.6,
  }, 1500 );
});
</script>

</body>

Спасибо.

1 Ответ

15 голосов
/ 13 июля 2011

Как это?

HTML

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <button id="go">&raquo; Run</button>
    <div id="block">Hello!</div>
</body>

CSS

div {
    background-color:#bca;
    background: #fff;
    position: absolute;
    top: 0px;
    left: 0px;
    margin-left: 50%;
    margin-top: 50%;
    background-repeat: no-repeat;
    background-position: center center;
    border:1px solid green;
    padding:10px;
}

jQuery

$("#go").click(function(){
    $("#block").animate({
        width: "100px",
        height: "100px",
        top: "-50px",
        left: "-50px",
        opacity: 0.6,
    }, 1500 );
});

http://jsfiddle.net/theguywholikeslinux/87f4Y/

Я использовал margin-left и margin-top для центрирования и анимировал top: и left: значения, чтобы заставить окно расти и влево, а такжекак внизу, так и вправо.

Возможно, вам придется добавить дополнительный CSS, если вы хотите, чтобы надпись "Hello" также оставалась в центре поля.

...