Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   увеличение блока (https://javascript.ru/forum/misc/69168-uvelichenie-bloka.html)

Mmorgan 02.06.2017 17:44

увеличение блока
 
помогите пожалуйста с jquery создать блок, который плавно увеличится до размеров браузера, а потом будет изменятся в зависимости от размеров этого браузера и да нужно что бы размеры отображались в самом блоке, заранее спасибо)

рони 02.06.2017 17:51

Цитата:

Сообщение от Mmorgan
до размеров браузера

:blink:

Mmorgan 02.06.2017 17:54

:( угу

рони 02.06.2017 20:11

div по ширине и высоте видимой части окна
 
Mmorgan,
что такое размеры браузера, известно только вам ...
вопрос знатокам, подскажите , как в данном примере выровнять текст по центру с помощью css.
без вычисления в строке 37(вариант с flex ниже)
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body, html{
    height: 100%;
    padding: 0;
    margin: 0;
  }
  .item.big{
    background-color: #FF00FF;
    transform: scale(1);
  }
  .item{
    height: 100%;
    transform: scale(0);
    transform-origin: center;
    transition: all 8s ease-in-out 1s;
    color: #FFFFFF;
    width: 100%;
    text-align: center;
    line-height: 100px;
    font-size: 48px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
  var div = $("<div class='item'></div>");
  $("body").append(div).width();
  $(window).resize(function() {
   div.html([div.width(),div.height()].join(" x "))
.css({"line-height":div.height() +"px"})
}).resize();
div.addClass("big")
});
  </script>
</head>

<body>
</body>
</html>

рони 02.06.2017 20:20

выравнивание текста по центру flex
 
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body, html{
    height: 100%;
    padding: 0;
    margin: 0;
  }
  .item.big{
    background-color: #FF00FF;
    transform: scale(1);
  }
  .item{
    height: 100%;
    transform: scale(0);
    transform-origin: center;
    transition: all 8s ease-in-out 1s;
    color: #FFFFFF;
    width: 100%;
    font-size: 48px;
    display: flex;
    justify-content: center;
    align-items: center;

  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
  var div = $("<div class='item'></div>");
  $("body").append(div).width();
  $(window).resize(function() {
   div.html([div.width(),div.height()].join(" x "))
}).resize();
div.addClass("big")
});
  </script>
</head>

<body>
</body>
</html>

Mmorgan 02.06.2017 20:34

рони,
Спасибо огромное, вы меня просто спасли, еще вопрос просто для уточнения, это ни как не сделать без Ajax?

рони 02.06.2017 20:57

Цитата:

Сообщение от Mmorgan
это ни как не сделать без Ajax?

мне сложно понять о чём вы пишите, надеюсь это не какой-то стёб.

да, можно сделать тоже самое без jquery. (но это уже сами https://learn.javascript.ru/document)

Smurf 04.06.2017 19:35

рони,
схожая проблема, может в курсе,

у меня div растет с animate, до 700px, есть возможность вывести его размеры в реальном времени? то есть div увеличивает свои размеры и на протяжении всего его роста,выведенные размеры меняются, ну допустим с каким то адекватным интервалом?

рони 04.06.2017 20:01

Цитата:

Сообщение от Smurf
растет с animate

если jquery, то параметр step

destus 04.06.2017 20:44

рони,
Цитата:

выровнять текст по центру с помощю css
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body, html{
    height: 100%;
    padding: 0;
    margin: 0;
  }
  .item.big{
    background-color: #FF00FF;
    transform: scale(1);
  }
  .item{
    height: 100%;
    transform: scale(0);
    transform-origin: center;
    transition: all 8s ease-in-out 1s;
    color: #FFFFFF;
    width: 100%;
    font-size: 48px;
position: relative;
  }

.item span {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
  var div = $("<div class='item'></div>");
  $("body").append(div).width();
  $(window).resize(function() {
   div.html('<span>' + [div.width(),div.height()].join(" x ") + '</span>')
}).resize();
div.addClass("big")
});
  </script>
</head>

<body>
</body>
</html>

рони 04.06.2017 20:53

destus,
спасибо, а просто текст можно отцентриировать по вертикали, без flex и дополнительных тегов?

destus 04.06.2017 21:03

рони,

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body, html{
    height: 100%;
    padding: 0;
    margin: 0;
width: 100%;
display: table;
  }
  .item.big{
    background-color: #FF00FF;
    transform: scale(1);
  }
  .item{
    height: 100%;
    transform: scale(0);
    transform-origin: center;
    transition: all 8s ease-in-out 1s;
    color: #FFFFFF;
    width: 100%;
    text-align: center;
    display: table-cell;
vertical-align: middle;
    font-size: 48px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
  var div = $("<div class='item'></div>");
  $("body").append(div).width();
  $(window).resize(function() {
   div.html([div.width(),div.height()].join(" x "))
}).resize();
div.addClass("big")
});
  </script>
</head>

<body>
</body>
</html>

Smurf 04.06.2017 21:04

рони,
сори за тупость, но что то не выходит:blink:

рони 04.06.2017 21:11

destus,
спасибо, сам пробовал с table-cell, но не догадался на body display: table; поставить :thanks:

рони 04.06.2017 21:12

Smurf,
где код?

Smurf 04.06.2017 21:20

рони,
я только учусь))

рони 04.06.2017 21:24

Smurf,

смотрите выше как сделаны примеры выше и попробуйте сделать также.
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Smurf 04.06.2017 21:43

рони,
По примеру не выходит, так то делаю то же что и вы, немного более геморным способом, а инфы по этой функции для тупых почти нету, короче беда

рони 04.06.2017 21:58

animate step
 
Smurf,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body, html{
    height: 100%;
    padding: 0;
    margin: 0;
    width: 100%;
  }

  .item{
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    margin: auto;
    width:0;
    height: 0;
    background-color: #FF00FF;
    text-align: center;
    font-size: 48px;
    display: flex;
    justify-content: center;
    align-items: center;

  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
    var div = $("<div class='item'></div>"),
        timer, d = [0, 0];
    $("body").append(div);
    $(window).resize(function() {
        window.clearTimeout(timer);
        timer = window.setTimeout(function() {
            var w = $(window).width(),
                h = $(window).height();
            div.stop().animate({
                width: w,
                height: h
            }, {
                duration: 12E3,
                step: function(a, t) {
                    if (t.prop == "width") d[0] = a | 0;
                    if (t.prop == "height") d[1] = a | 0;
                    div.text(d.join(" x "))
                }
            })
        }, 100)
    }).resize()
});
  </script>
</head>

<body>
</body>
</html>

Smurf 04.06.2017 23:09

рони,
Огромное, человеческое спасибо:thanks:

буду разбираться


Часовой пояс GMT +3, время: 21:23.