Joomla 1.5 Получить разрешение монитора от клиента

Тема в разделе "Программирование", создана пользователем agruts, 11.08.2011.

  1. agruts
    Offline

    agruts Russian Joomla! Team

    Регистрация:
    01.03.2006
    Сообщения:
    612
    Симпатии:
    21
    Пол:
    Мужской
    Недавно колупался в шаблоне, и озадачился такой мыслью. Резиновая верстка это хорошо, но проценты не всегда можно применить. В частности, в моем случае страница пилилась пополам на 40 и 60% по ширине.
    Меньшая часть (какбы 40%) на самом деле не получалась 40%, чтобы это выглядело нормально.
    В этой колонке выводится фотка, размер которой задается в конфиге компонента, скажем, 450px.
    При этом, если у юзера разрешение 1024 или даже 800 точек в ширину, то получается каша. Вот я и подумал, как получить от браузера значение ширины экрана, загнать ее в переменную и отсюда уже плясать.
    Дивам задается стиль, в котором в значении ширины переменная.
    Допустим, полученная скриптом разрешение 1024х768
    Код (PHP):
    1. $width = $_GET['width'];
    2. $wrapper = $width;
    3. $leftcol   =  round (40*$width)/100;         // в ней выводится картинка
    4. $rightcol  = round (60*$width)/100;
    5. $img = $row->img-width;  //допустим, 450px
    6. if ($img > $leftcol) {
    7. $img2 = $img - ($img-$leftcol)  // тут все очевидно. новый размер по ширине, уменьшается на разницу
    8. }

    прикол в том, чтобы при условии, что значение $leftcol становится меньше, чем $img, тогда значению $img присваиваются новые значения, равные $leftcol . (маргинами пока можно пренебречь).
    Согласен, это не самый правильный способ уменьшения изображения, но при нынешних скоростях это не критично.
    т.е. теперь, картинка изменяется пропорционально вместе с шириной колонки. (в меньшую сторону)

    задача же как раз состоит в том, чтобы значение переменной передать.
    яваскрипт умеет выдергивать, и это значение переменной можно передать в пхп, но что-то у меня не работало. в переменой все время был 0 по ширине.

    Код (PHP):
    1. if (isset($_GET['width']) AND isset($_GET['height'])) {
    2.  // output the geometry variables
    3.  echo "Screen width is: ". $_GET['width'] ."<br />\n";
    4.  echo "Screen height is: ". $_GET['height'] ."<br />\n";
    5. } else {
    6.  // pass the geometry variables
    7.  // (preserve the original query string
    8.  //   -- post variables will need to handled differently)
    9.  
    10.  echo "<script language='javascript'>\n";
    11.  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
    12.            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
    13.  echo "</script>\n\n\n";
    14.  exit();
    15. }


    отдельно этот скрипт работает и выдает на экране. но мне же не нужно это выводить, да и потом необходимо обойтись без обновления страницы.



    Код (html):
    1. <div id="wrapper" style="width:<? echo $wrapper; ?>px;">
    2. <div id="leftcol" style="width:<? echo $leftcol; ?>px;">
    3. <img src="/" width="" />
    4. <div id="rightcol" style="width:<? echo $rightcol; ?>px;">
    5. "
    >

    вобщем, что-то у меня моск закипает. у кого есть какие мысли.????

    пс. полпервго ночи, может быть не совсем понятно изложил свой бред.
     
  2.  

Поделиться этой страницей

Загрузка...