Форсирование отрицательного нижнего поля на Flash - PullRequest
1 голос
/ 04 августа 2011

У меня есть навигационная карусель .swf высотой 650 пикселей, нижние 200 пикселей зарезервированы для отражения карусели. Отражение очень тонкое и не считается важной информацией, поэтому мы хотели бы удалить вертикальные полосы прокрутки, когда окно достаточно высоко, чтобы соответствовать верхним 450 пикселям, но не отражению.

Я пытался добиться этого, установив margin-bottom: -200px для вспышки <object>, но это только уменьшило высоту контейнера на 200 пикселей, в результате чего фоновый рисунок обрезался до нижней части страницы. Сама вспышка все еще занимает 650 пикселей.

Есть ли какое-то "правильное" исправление для этого, кроме скрытия / показа полос прокрутки, активно использующих JavaScript?

1 Ответ

0 голосов
/ 04 августа 2011

Вы можете попробовать использовать css:

#idOfElement {
    overflow-x: hidden;
    overflow-y: hidden;
}

Мои извинения, я думал, что вы пытаетесь удалить полосы прокрутки с элемента. Если вы хотите убрать их из окна, просто наберите body {overflow: hidden}

Части элемента обрезаются только тогда, когда вы делаете overflow: hidden, если содержимое элемента больше его контейнера, так что вы можете захотеть посмотреть на это.

Попробуйте скрыть переполнение, когда высота окна достигнет 450px:

window.onresize = function () {
    var height = window.innerHeight;
    if (height > 450) {
        document.body.style.overflow = "hidden";
    }
}

Проблема, с которой вы можете столкнуться, заключается в том, что некоторые браузеры предпочитают запускать много событий изменения размера во время изменения размера, а не одного после, что может повлиять на производительность. Пол Ириш (Paul Irish) написал небольшое сообщение в блоге о том, как это исправить, на http://paulirish.com/2009/throttled-smartresize-jquery-event-handler/, и я думаю, что функция .resize () jQuery делает это автоматически.

...