Как вычислить ФАКТИЧЕСКУЮ внутреннюю ширину / внутреннюю высоту?

#javascript #jquery #html #css #twitter-bootstrap

#javascript #jquery #HTML #css #twitter-bootstrap

Вопрос:

Я пишу адаптивный веб-сайт с помощью bootstrap, и мне просто нужен элемент, который соответствует фактическому размеру экрана.

Всякий раз, когда я делаю height / width: 100%, браузер выдает мне полосу прокрутки, потому что она обрабатывает мой видовой экран как полный размер экрана (т.е. Исключая панель инструментов / другие вкладки браузера / панель задач Windows внизу). Как мне вычислить размеры, исключая эти? Из других ответов, это то, что innerWidth() и innerHeight() не должны делать? Но у меня это не работает … (см. Ниже)

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

Мой полноэкранный размер равен 1920×940, и это то, что возвращается при запуске:

 $(document).ready(function() {
    alert("Inner Height: "   $(document).innerHeight());
    alert("Inner Width: "   $(document).innerWidth());
}
  

(И $ (window) дали те же размеры.)

Вот скриншот проблемы:

Вот мой код:

 <div id="videoModal">
    <div class="modal-dialog" role="listbox">
        <!--<div class="modal-header">-->
        <!--</div>-->
        <div class="modal-body">
            <div id="carousel" class="carousel slide" data-ride="carousel">
            <!-- Indicators -->


                <!-- Wrapper for slides -->
                <div class="carousel-inner">
                    <div class="item" ng-class="{active: !$index}" ng-repeat="video in videos">
                        <video id="{{video.videoId}}" controls>
                                <source src="{{video.webmUrl}}" type="video/webm"/>
                                <source src="{{video.mp4Url}}" type="video/mp4"/>
                                <!--<source src="{{video.ogvUrl}}" type="video/ogg"/>-->
                            </video>
                            <a class="left carousel-control" href="#carousel" role="button" data-slide="prev">
                                <span class="icon-prev" aria-hidden="true"></span>
                                <span class="sr-only">Previous</span>
                            </a>
                            <a class="right carousel-control" href="#carousel" role="button" data-slide="next">
                                <span class="icon-next" aria-hidden="true"></span>
                                <span class="sr-only">Next</span>
                            </a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
  

И мой css:

 #videoModal {
        display: none;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1050;
    }
  

Любая помощь будет оценена, очевидно, что здесь мне не хватает чего-то фундаментального …! Заранее спасибо.

Комментарии:

1. почему бы не использовать VH и VW в вашем css?

Ответ №1:

Если я правильно понял ваш вопрос, я думаю, что использование VH VW единиц и в вашем CSS файле было бы лучшей практикой.

Например, вы можете делать такие вещи:

 .element {
    width: 100vw;
    height: 100vh;
    background: red;
}
  

Комментарии:

1. Привет, Энди, к сожалению, это проблема. Добавление 100vh и 100vw в html и body (или мой модальный) согласуется с разрешением 1920 пикселей на 940 пикселей (это полноэкранный размер, если включены панель инструментов / панель задач и т. Д., Поэтому есть полоса прокрутки. Это идеально подходит, если я нажму F11 и перейду на полноэкранный режим.

2. Что вызывает отображение вашей полосы прокрутки? Что под видео?

3. Ничего под видео …!

4. Ну, там должно быть что-то, чтобы полоса прокрутки отображалась?

5. Привет, Энди, я обновил вопрос с помощью html и css для этого бита. Что-нибудь еще, что я могу предоставить, чтобы помочь?