Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.09.2014, 16:51
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

Изменить размер iframe под aside
Здравствуйте!

Учусь программировать в JS, но не всё проходит гладко. В сайдбар выгружаю три iframe с роликами youtube. Хочу, чтобы размеры iframe были по ширине aside (в теги aside разместил сайдбар). Всем фреймам iframe присвоил id="sidevid" . Почему-то не могу получить ширину aside Помогите, пожалуйста.
window.onload = function(){
		var aside = document.getElementsByTagName('aside');
		Wid=aside.offsetWidth;
		var div = document.getElementById("sidevid");
		div.style.width = Wid+"px";
		Hei=Wid/1.77;
		div.style.height = Hei+"px";
	}

Если ещё что-то не так написал - укажите на ошибки. Не волшебник, только учусь. Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2014, 17:18
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

А для чего задавать ширину через js если можно просто стиль дать?
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2014, 17:30
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

Даже если ширина сайдбара в процентах? Предположим ширину-то я ещё процентами задам. А что будет с высотой? И не отразится ли это на качестве фрейма, если задавать через css, а не в стилях элемента?

Последний раз редактировалось usesa, 30.09.2014 в 17:33.
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2014, 22:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну с шириной то проблем нет - width: 100%.
С высотой сложнее. В css нет непосредственного способа задать соотношение сторон. Но можно использовать костыль, основанный на том, что padding-top/padding-bottom высчитывается от ширины:

<aside>
    <div>
        <iframe src="http://javascript.ru" frameborder="0"></iframe>
    </div>
</aside>

<style>
    html, body{margin:0;padding:0;height:100%}
    aside {
        width: 20%;
        height: 100%;
        background: yellow;
    }
    aside div{
        width: 100%;
        height: 0;
        padding-top: 56.5%; /* 100/1.77 */
        position: relative;
    }
    aside div iframe{
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
    }
</style>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 30.09.2014, 23:08
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

danik.js , задумка интересная, спасибо, проникся, буду знать что есть такой костыль. Но очевидно, что в сайдбар будут запихивать и другие дивы без фреймов и там (возможно) будут всякие-разные проблемы с ними потом из-за этого костыля. Неужели никак нельзя получить размеры ширины блока aside и просто проставить стилем во фрейм?
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2014, 05:13
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Для начала надо clientWidth, потому что оффсет включает все, а клиент выключает все кроме того что нам надо.

Для конца - при чем тут aside? Если вы не знаете чем обернется использование специального тега в будущем, возможно в скором будущем, используйте заведомо вечные теги без особых свойств, например div (arbitrary division)
Ответить с цитированием
  #7 (permalink)  
Старый 01.10.2014, 08:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от usesa
Но очевидно, что в сайдбар будут запихивать и другие дивы без фреймов и там (возможно) будут всякие-разные проблемы с ними потом из-за этого костыля.
Хоть это и костыль, но js для задания размеров - еще более страшный костыль. Не вижу проблем с другими дивами. Используй классы вместо имен тегов. Я ж просто для примера css писал.

Сообщение от usesa
Неужели никак нельзя получить размеры ширины блока aside и просто проставить стилем во фрейм?
width: 100% в css задай. А костыль мой - для задания пропорций.

Сообщение от kostyanet
Если вы не знаете чем обернется использование специального тега в будущем, возможно в скором будущем, используйте заведомо вечные теги без особых свойств, например div
И чем же оно обернется? И какие у него особые свойства?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 01.10.2014, 10:39
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от usesa
Если ещё что-то не так написал - укажите на ошибки
во второй строке вы получаете псевдомассив элементов, у которого не может быть .offsetWidth. Соответственно, в третьей строке получите ошибку.
Плюс пропущенные объявления переменных через var
Ответить с цитированием
  #9 (permalink)  
Старый 01.10.2014, 13:06
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от danik.js
И чем же оно обернется? И какие у него особые свойства?
У всех нормальных людей в блоке normalization весь свой набор элементов превращается в div. Для чего спрашивается городят все эти новые теги, если народу надо только разнообразие имен одного и того же дива.

Я не знаю какие они, надо читать спецуху чтобы понять что из того что там сформулировано применяется, а что еще нет, но может быть. Читать не хочу. Кто применяет - тот пусть читает.

aside это сноска по-книжному. При чем тут видео? Не важно, конечно. Я только хотел сказать что большой выбор до бобра не доведет.
Ответить с цитированием
  #10 (permalink)  
Старый 01.10.2014, 13:23
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

И еще, тренд html'я пятого в развитии структуры документов. Которая как планируется послужит повышению релевантности поиска и все такое. Если гугля, допустим, перестанет искать в aside, поскольку а чо там вообще искать - там же сноски - то и не найдет чего вы туда важного такого засунули.

В другой плоскости той же задачи - itemprop'ы. Я тут недавно засунул один такой айтемпроп в линк стилей, вместо rel, браузер х забил на стили. Пришлось вернуть rel
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет и размер шрифта в Java savas332 Серверные языки и технологии 3 09.01.2014 17:02
Как изменить размер всех видео (iframe) разом через jQuery? dhorh Элементы интерфейса 2 29.12.2012 19:41
Нужно изменить favicon под IE temploid Общие вопросы Javascript 1 09.04.2012 17:49
Изменить параметр тега iframe AlexM jQuery 2 26.01.2012 12:05
Как изменить размер картинки? Mihail Общие вопросы Javascript 1 25.10.2009 13:42