Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Про картинку в качестве фона (https://javascript.ru/forum/dom-window/36221-pro-kartinku-v-kachestve-fona.html)

Ahterknica 12.03.2013 13:02

рони, да, только я хочу, чтоб они обрезались, а не были белыми полосками.

Ahterknica 12.03.2013 13:03

мне кажется, это довольно типичная ситуация, разве нет?)

Kowabunga! 12.03.2013 13:17

так сейчас то на каком этапе? изображение растягивается но не скукоживается при маленьком экране?
зафигачь вообще картинку в табличку, на весь экран и в стили добавь

table-layout:fixed;

о_О

Ahterknica 12.03.2013 13:28

нет-нет.
смысл мне её класть в таблицу?
в общем, это дело выглядит так: http://46.17.45.45/~knica119/index.html
если смотреть на мониторе с маленьким разрешением, будет некрасиво, с большим - все ок

Kowabunga! 12.03.2013 13:31

Такая там жесть при изменении размеров окна О_О

danik.js 12.03.2013 13:32

Цитата:

Сообщение от Ahterknica
да, а если экран меньше изображения, то оно вылезает за границы. А должно скукоживаться

Тогда думаю одним css не решить.
Нужно сравнивать размеры картинки с размером экрана, и в зависимости от результата выставлять либо width либо height - 100%

Короче,

if (window.innerHeight < image.offsetHeight || window.innerWidth < image.offsetWidth) {
    image.style[image.offsetHeight > image.offsetWidth ? 'height' : 'width'] = '100%';
}

Kowabunga! 12.03.2013 13:32

хотя когда уже подгружается полосочка, то все красиво

Ahterknica 12.03.2013 13:38

О да, кажется, это то, что нужно!

Ahterknica 12.03.2013 13:38

Цитата:

Сообщение от Kowabunga! (Сообщение 240188)
хотя когда уже подгружается полосочка, то все красиво

полосочка меню?

Ahterknica 12.03.2013 13:45

Цитата:

Сообщение от danik.js (Сообщение 240187)
Тогда думаю одним css не решить.
Нужно сравнивать размеры картинки с размером экрана, и в зависимости от результата выставлять либо width либо height - 100%

Короче,

if (window.innerHeight < image.offsetHeight || window.innerWidth < image.offsetWidth) {
    image.style[image.offsetHeight > image.offsetWidth ? 'height' : 'width'] = '100%';
}

только я лажовщик.
я вставила этот код вот так, в мой код, меняющий картинки:
var i , t,
    b;
var speed = 6000
var Pic = ['image/img_1.jpg',
'image/img_2.jpg',
'image/img_3.jpg',
'image/img_4.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.zIndex = -999;
    i.id="img"
    document.body.appendChild(i)
    t = setTimeout(fon, speed)
}
if (window.innerHeight < image.offsetHeight || window.innerWidth < image.offsetWidth) {
    i.style[i.offsetHeight > i.offsetWidth ? 'height' : 'width'] = '100%';
}

window.onresize = function () {
   var i = document.getElementById("img");
   if(i) document.body.removeChild(i);
    window.clearTimeout(b);
    b = window.setTimeout(function () {
        fon()
    }, 20)
};


Часовой пояс GMT +3, время: 18:09.