Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2009, 13:36
Amberwood
 
Сообщений: n/a

Растягивание картинки
Добрый день!
Я написал скрипт, который растягивает картинку, придавая ей высоту и ширину документа.
<html>
<head>
<title>byLine</title>
<style type="text/css">html, body { width:100%; height:100%; padding:0;} p {line-height:1.8em; letter-spacing:0.1em; text-align:justify;} #content {position:absolute; padding:5px 300px 20px 200px; z-index:2;} body {margin:0; font-family:verdana, arial, sans-serif; font-size:76%;} #pic { z-index:1;  overflow: hidden; visibility:hidden;}</style>
</head>
<body>
<div id="content">
  <h1>ALICE'S ADVENTURES IN WONDERLAND</h1>
  <h3>Lewis Carroll</h3>
  <h2>THE MILLENNIUM FULCRUM EDITION 3.0</h2>
  <h3>CHAPTER I</h3>
  <h4>Down the Rabbit-Hole</h4>
    <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>
  <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>
  <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>

</div>
<script>
function getDocumentHeight()
{
   return (document.body.scrollHeight >
document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}

function getDocumentWidth()
{
   return (document.body.scrollWidth >
document.body.offsetWidth)?document.body.scrollWidth:document.body.offsetWidth;
}
width = getDocumentWidth();
height = getDocumentHeight();
document.writeln('<img src="_images/b2.png" id="imgId" width="', width,'" height="', height,'"  class="fon">')
</script>
</body>

Тут всё хорошо работает. Но в данном файле скрипт находится внутри body. Мне же необходимо немного дополнить скрипт, чтобы он еще и на CSS влиял, а для этого нужно расположить скрипт в head. Вот что у меня получилось:
<html>
<head>
<title>byLine</title>
<style type="text/css">html, body { width:100%; height:100%; padding:0;} p {line-height:1.8em; letter-spacing:0.1em; text-align:justify;} #content {position:absolute; padding:5px 300px 20px 200px; z-index:2;} body {margin:0; font-family:verdana, arial, sans-serif; font-size:76%;} #pic { z-index:1;  overflow: hidden; visibility:hidden;}</style>
<script>
function getDocumentHeight()
{
   return (document.body.scrollHeight >
document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}
function getDocumentWidth()
{
   return (document.body.scrollWidth >
document.body.offsetWidth)?document.body.scrollWidth:document.body.offsetWidth;
}
function init(){
var imgId= document.getElementById('imgId');
imgId.width = getDocumentWidth();
imgId.height = getDocumentHeight();
}
</script>
</head>
<body onLoad="init();">
<div id="content">
  <h1>ALICE'S ADVENTURES IN WONDERLAND</h1>
  <h3>Lewis Carroll</h3>
  <h2>THE MILLENNIUM FULCRUM EDITION 3.0</h2>
  <h3>CHAPTER I</h3>
  <h4>Down the Rabbit-Hole</h4>
    <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>
  <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>
  <p>Alice was beginning to get very tired of sitting by her sister
    on the bank, and of having nothing to do:  once or twice she had
    peeped into the book her sister was reading, but it had no
    pictures or conversations in it, 'and what is the use of a book,'
    thought Alice 'without pictures or conversation?'</p>
  <p>So she was considering in her own mind (as well as she could,
    for the hot day made her feel very sleepy and stupid), whether
    the pleasure of making a daisy-chain would be worth the trouble
    of getting up and picking the daisies, when suddenly a White
    Rabbit with pink eyes ran close by her.</p>
</div>
<img src="_images/b2.png" id="imgId" class="fon">
</body>
Но оказалось, что этот вариант не работает. Я что-то не так сделал, или этот скрипт невозможно расположить в head?

Последний раз редактировалось Octane, 20.10.2009 в 21:38.
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2009, 14:47
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Всё должно работать.
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2009, 21:13
Amberwood
 
Сообщений: n/a

Сообщение от B~Vladi Посмотреть сообщение
Всё должно работать.
Но, к сожалению, не работает! Картинка имеет какие-то не понятные размеры, явно отличающиеся от размеров картинки в первом случае!
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2009, 00:20
Кандидат Javascript-наук
Отправить личное сообщение для MininAS Посмотреть профиль Найти все сообщения от MininAS
 
Регистрация: 22.09.2009
Сообщений: 122

Нарисуй картинку отдельным скриптом в конце документа.
Ответить с цитированием
  #5 (permalink)  
Старый 02.10.2009, 00:27
Кандидат Javascript-наук
Отправить личное сообщение для MininAS Посмотреть профиль Найти все сообщения от MininAS
 
Регистрация: 22.09.2009
Сообщений: 122

function getDocumentHeight()
{
   return (document.body.scrollHeight >
document.body.offsetHeight)?document.body.offsetHeight:document.body.scrollHeight;
}
function getDocumentWidth()
{
   return (document.body.scrollWidth >
document.body.offsetWidth)?document.body.offsetWidth:document.body.scrollWidth;
}


так нормально работает .
Ответить с цитированием
  #6 (permalink)  
Старый 06.10.2009, 22:04
Amberwood
 
Сообщений: n/a

Так всё хорошо, если нет прокрутки! А если есть прокрутка, то не подходит, т.к. картинка растягивается только по высоте окна, а не по высоте всего документа!
Ответить с цитированием
  #7 (permalink)  
Старый 06.10.2009, 23:23
Кандидат Javascript-наук
Отправить личное сообщение для MininAS Посмотреть профиль Найти все сообщения от MininAS
 
Регистрация: 22.09.2009
Сообщений: 122

Ну если принципиально,! догоняй тогда в чем же дело, а так можно в принцепе и не обращать внимание на десяток откусанных пикселей с низу картинки, тем более если размер страницы будет больше видимой части экрана то РАЗНИЦЫ уже никакой нету (у картины в том и другом скрипте размер будет одинаков)!!!!!!!
Скорее всего браузеру принципиально каким образом ты выводишь объект (изображение): через скрипт в конце документа или же отдельным тегом.
Ответить с цитированием
  #8 (permalink)  
Старый 06.10.2009, 23:34
Кандидат Javascript-наук
Отправить личное сообщение для MininAS Посмотреть профиль Найти все сообщения от MininAS
 
Регистрация: 22.09.2009
Сообщений: 122

Впечатление, что во вором варианте картинка рисуется с соблюдением пропорций т.е. высота не меньше чем ширина пропорционально.
Ответить с цитированием
  #9 (permalink)  
Старый 07.10.2009, 08:39
Amberwood
 
Сообщений: n/a

Ну у меня на некоторых страницах далеко не десяток откусанных пиксеклей.. В некоторых местах есть по 1000 пикселей на белом фоне...
Действительно браузеру по ходу не всё равно , где я вставляю скрипт...
Да я бы и оставил бы скрипт в конце документа, но дело в том что когда документ без прокрутки, т.е. высота документа меньше высоты окна, то тогда фон лучше вставлять через background. Вот я и хотел сделать скрипт, который определяет высоту документа, и в зависимости от этого вставлял фон через функцию или через background. А если скрипт в конце документа, то на background с его помощью не удаётся повлиять(((
Ответить с цитированием
  #10 (permalink)  
Старый 07.10.2009, 10:36
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Лучше засунуть весь контент в див и сравнивать его высоту с высотой документа.

ЗЫ:
function clientWidth(){return document.compatMode=='CSS1Compat'&&!window.opera?document.documentElement.clientWidth:document.body.clientWidth;}
function clientHeight(){return document.compatMode=='CSS1Compat'&&!window.opera?document.documentElement.clientHeight:document.body.clientHeight;}


Не забудь написать в стилях:
html, body{
  height:100%;
}

Последний раз редактировалось B~Vladi, 07.10.2009 в 10:38.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить загружены ли все картинки браузером Aderba jQuery 13 29.05.2014 14:18
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Смена картинки при перезагрузке + наведении Мария Элементы интерфейса 2 22.08.2009 14:57
Мигание картинки в IE6 hp5741 Internet Explorer 3 09.07.2009 16:58
Preview большой картинки jusalex Элементы интерфейса 4 15.01.2009 18:01