Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2013, 18:02
Аспирант
Отправить личное сообщение для Ahterknica Посмотреть профиль Найти все сообщения от Ahterknica
 
Регистрация: 13.02.2013
Сообщений: 59

Растянуть изображение фоном.
Есть у меня скрипт, меняющий картинки.
Вот такой:
<!DOCTYPE HTML>
<HTML> 
<META http-equiv=Content-Type content='text/html; charset=windows-1251'>
<title></title>
<script  type="text/javascript">
var speed = 1500
var Pic = new Array() 
Pic[0] = 'image/img_1.png'
Pic[1] = 'image/img_2.png'
Pic[2] = 'image/img_3.png'
Pic[3] = 'image/img_4.png'
var t
var j = 0
var p = Pic.length
var preLoad = new Array()
for (i = 0; i < p; i++){
   preLoad[i] = new Image()
   preLoad[i].src = Pic[i]
}
function runBGSlideShow(){
   if (document.body){
   document.body.background = Pic[j];
   j = j + 1
   if (j > (p-1)) j=0
   t = setTimeout('runBGSlideShow()', speed)
   }}
</script>
<style type="text/css">
body{background-repeat: no-repeat;background-position: 275 0;}
</style>
</HEAD>
<body onload="runBGSlideShow()">
</BODY></html>


Но картинки, хоть и являются фоном, не заполняют все пространство. Я хочу сделать так, чтобы они по ширине соответствовали окну, то есть были 100%.
Я знаю, как это сделать в html и css, но тут картинки задаются через Javascript. А я не знаю, что делать
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2013, 18:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Есть свойство http://htmlbook.ru/css/background-size
Или ставить картинку тегом <img width="100%" src="" style="position:absolute; top:0; margin:0 auto">
И менять у неё src
Картинку ставим перед body
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2013, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ahterknica,
а у нас было
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title></title>
<style type="text/css">
p {
    position: fixed;
    top: 50%;
    left: 50%;
    margin-top: -50px;
    margin-left: -100px;
    height: 50px;
    width: 300px;
    color: #FFFFFF;
    font-size:  2em;
}
* html p {
    position: absolute;
}
</style>
<script type="text/javascript">
var i , t,
    b;
var speed = 1500
var Pic = ['http://imgs.su/tmp/1292024913.jpg',
'http://gallery.ykt.ru/galleries/tf2/2012/06/1077057_0.jpg',
'http://www.wallgrad.ru/_ph/39/251576366.jpg',
'http://yawall.ru/images/Abstrakciya-oboi-dlya-rabochego-stola-izobrajeniya/1920x1080/50459-Golubovatiy-fon-s-beloy-izognctoy-liniey-1920x1080.jpg']
var j = 0
var p = Pic.length
for (i = 0; i < p; i++){
   var preLoad = new Image()
   preLoad.src = Pic[i]
   Pic[i] = preLoad
}
function get(a) {
    var c = document,
        d = c.body,
        e = c.documentElement,
        f = "client" + a;
    a = "scroll" + a;
    return c.compatMode === "CSS1Compat" ? Math.max(e[f], e[a]) : Math.max(d[f], d[a])
}
window.onload = fon;
i = new Image;
function fon() {
    window.clearTimeout(t);
    j++
    j %= p
    i.src = Pic[j].src;
    i.style.position = "absolute";
    i.style.left = "0px";
    i.style.top = "0px";
    i.style.width = get("Width") + "px";
    i.style.height = get("Height") + "px";
    i.style.zIndex = -999;
    i.id="img"
    document.body.appendChild(i)
    t = setTimeout(fon, speed)
}
window.onresize = function () {
   var i = document.getElementById("img");
   if(i) document.body.removeChild(i);
    window.clearTimeout(b);
    b = window.setTimeout(function () {
        fon()
    }, 20)
};
</script>
</head>
<body>
<p>Всякая всячина</p>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2013, 22:44
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

рони, что это за херня? Можешь в кратце рассказать что она делает и почему так много кода?
Deff, все верно, только если top:0, то и left:0, и margin:0 auto тут не будет работать (auto для position:absolute не работает)
И возможно не absolute, а fixed, и может еще z-index: -1
И не перед body( какого ..??) а внутри него конечно же.

Но картинка - хреновый вариант. Те немногочисленные бедняги что зашли с IE8 обойдутся обычным фоном, не растянутым. Можно еще для IE8 задать через
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
                src='/workshop/graphics/earglobe.gif', sizingMethod='scale');"

Но эта хрень ломает пропорции.
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2013, 22:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от danik.js
что она делает
написано во 2 посте, background-size заменяет. много кода как умею -- прелоад картинок, получение размеров окна, создание картинки рандомно, отслеживание размеров окна ... можешь проще предложи замену.
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2013, 23:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от danik.js
Те немногочисленные бедняги что зашли с IE8 обойдутся обычным фоном, не растянутым
Ерунда, в ИЕ8 картинкой тыщу лет делали!

<!DOCTYPE HTML>
<html>
  <head> </head>
<body style="width:100%;text-align:center;">
<img width=100% src="http://javascript.ru/forum/images/smilies/smile.gif" style="position:absolute; top:0; margin:0"/>

  </body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2013, 23:44
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            html{
                height: 100%;
                width: 100%;
                margin: 0;
                padding: 0;
                background: #fff;
            }
            body{
                min-height: 100%;
                margin: 0;
                padding: 0;
                background-position: top center;
                background-repeat: no-repeat;
                -moz-background-size: 100% 100%;
                -o-background-size: 100% 100%;
                background-size: 100% 100%;
            }
            p {
                position: fixed;
                top: 50%;
                left: 50%;
                margin-top: -50px;
                margin-left: -100px;
                height: 50px;
                width: 300px;
                color: #FFFFFF;
                font-size:  2em;
            }
        </style>
    </head>
    <body>
        <p>Всякая всячина</p>
        <script>
        (function(){
            var interval = 1500,
                pictures = [
                    'http://imgs.su/tmp/1292024913.jpg',
                    'http://gallery.ykt.ru/galleries/tf2/2012/06/1077057_0.jpg',
                    'http://www.wallgrad.ru/_ph/39/251576366.jpg',
                    'http://yawall.ru/images/Abstrakciya-oboi-dlya-rabochego-stola-izobrajeniya/1920x1080/50459-Golubovatiy-fon-s-beloy-izognctoy-liniey-1920x1080.jpg'
                ];
            
            for (var i = 0; i < pictures.length; i++) {
                (new Image()).src = pictures[i];
            }
            
            var imageIndex = 0;
            setInterval(function(){
                var image = pictures[imageIndex++] || pictures[imageIndex = 0];
                if (document.addEventListener) {
                    document.body.style.backgroundImage = 'url('+ image + ')';
                } else {
                    document.body.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + image + ', sizingMethod="scale")';
                }
            }, interval);
        })();
        </script>
    </body>
</html>


Работает даже в IE8. Можно зааттачить изображение если назначать его тегу html и прописать background-attachment: fixed (правда что делать с IE8 - не знаю)
Ответить с цитированием
  #8 (permalink)  
Старый 18.02.2013, 23:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deff
Ерунда, в ИЕ8 картинкой тыщу лет делали!
Я не говорил что олдскульный вариант не работает в ИЕ8. Речь была о background-size
Ответить с цитированием
  #9 (permalink)  
Старый 28.02.2013, 00:04
Аспирант
Отправить личное сообщение для Ahterknica Посмотреть профиль Найти все сообщения от Ahterknica
 
Регистрация: 13.02.2013
Сообщений: 59

Сообщение от danik.js
Работает даже в IE8. Можно зааттачить изображение если назначать его тегу html и прописать background-attachment: fixed (правда что делать с IE8 - не знаю)
А может из-за этого скрипта тормозить вся страница?
Я его использовала, сделала страницу, и когда смотрю её с компьютера (ну то есть страница лежит у меня в диске D), то все нормально, а вот сейчас загрузила на хостинг - и все. Картинки не грузятся, тормозят. Все плохо..(

Вот так примерно: http://whitesea-camp.ru.preview.ihc.ru
Ответить с цитированием
  #10 (permalink)  
Старый 28.02.2013, 00:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ahterknica, хреново вы залили:
Цитата:
Failed to load resource: the server responded with a status of 404 (Not Found) http://whitesea-camp.ru.preview.ihc.ru/image/img_2.jpg
Failed to load resource: the server responded with a status of 404 (Not Found) http://whitesea-camp.ru.preview.ihc.ru/image/img_4.jpg
Failed to load resource: the server responded with a status of 404 (Not Found) http://whitesea-camp.ru.preview.ihc.ru/image/img_2.jpg
Failed to load resource: the server responded with a status of 404 (Not Found) http://whitesea-camp.ru.preview.ihc.ru/image/img_3.jpg
GET http://whitesea-camp.ru.preview.ihc.ru/image/img_3.jpg 404 (Not Found)
Дизайн убогий такой )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повернуть изображение после его загрузки (jquery) art_maestro jQuery 0 13.09.2012 21:50
изображение в другой цветовой схеме с помощью jq adam Общие вопросы Javascript 2 10.08.2011 13:34
Уменьшить изображение при меньшем разрешении экрана Golovastik Internet Explorer 3 14.09.2010 00:44
Как предварительно загруженное изображение сделать бэкграундом? hrundel Общие вопросы Javascript 1 02.08.2009 12:45
Можно ли приобразовать исходный текст изображения в само изображение )) human AJAX и COMET 7 20.03.2009 17:46