Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Функция изменения ширины страницы (https://javascript.ru/forum/dom-window/3644-funkciya-izmeneniya-shiriny-stranicy.html)

johnpro 12.05.2009 02:04

Функция изменения ширины страницы
 
Здравствуйте!
Хочется создать удобную настройку сайта для пользователей. Кнопка изменения ширины.
Есть div с id="test". Ширина div-а (width) = 780px. Необходимо создать кнопку, при нажатии которой ширина бы изменялась без перезагрузки страницы. Функцию создал:
function changeWidth(){
      currentWidth = parseInt(document.getElementById('test').style.width);
      
      if(currentWidth < 1080){
         currentWidth += 40;
      } else {
         currentWidth = 780;
      }
      document.getElementById('test').style.width = currentWidth + 'px';
   };

   window.onload = function(){
      document.getElementById('test').style.width = '780px';
   }


Все работает, только стоит перезагрузить страницу или перейти на следующую, все изменения пропадают, а нужно чтобы изменения ширины оставались. Как это можно сделать?
Нужно наверное добавить функцию создания и чтения куки, ток чет не получается(не хватает опыта).
Прошу помощи!!!

qwe 12.05.2009 12:50

http://www.quirksmode.org/js/cookies.html#script

johnpro 12.05.2009 16:10

Спасибо за ссылку. Только не могу разобраться как этим пользоваться.
У меня есть скрипт который изменяет размер шрифта (он с куками работает), но даже на его примере у меня ничего не вышло. Вот и решил попросить помощи...

Gvozd 12.05.2009 16:46

в changeWidth добавляете сохранение в куки нового значения
в window.onload добавляете получение из кук значения текущих размеров элементов(если есть), и подстравиваете.
попробуйте написать код.
если не будут получатся выкладывайте код с попыткой это сделать сюда

johnpro 12.05.2009 19:47

Просмотрел похожий скрипт, добавил из него кусок кода. А как дописать changeWidth и window.onload не знаю.
function changeWidth(){
      currentWidth = parseInt(document.getElementById('test').style.width);
 
      if(currentWidth < 1080){
         currentWidth += 40;
      } else {
         currentWidth = 780;
      }
      document.getElementById('test').style.width = currentWidth + 'px';
   };
     
   function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
};

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
};
 
   window.onload = function(){      
     document.getElementById('test').style.width = '780px';
       }

Gvozd 12.05.2009 20:12

что по вашему делают функции createCookie и readCookie ?
как это можно использовать с учетом, что я уже расписал словами алгоритм поведения?

johnpro 12.05.2009 20:48

функции: createCookie и readCookie - создают и читают куки.
Я не знаю как написать в changeWidth запись в куки, и чтение куки в window.onload

johnpro 12.05.2009 20:53

Я не мастер Javascript... Я понял ваш алгоритм, но я не знаю как это написать на Javascript. Именно по этому я и обратился за помощью на форум программистов Javascript.

x-yuri 12.05.2009 21:07

Цитата:

Я не мастер Javascript...
для этого кода не нужно быть мастером
Цитата:

я не знаю как это написать на Javascript
это не вопрос. Вопрос это, например, "как вызвать функцию?"

johnpro 12.05.2009 21:32

В том то и дело, что там надо дописать строк десять... Дело в том, что этот скрипт мой первый опыт написания javascript. А вопрос я задал в первом посте, где описал чего надо от этого скрипта.
Может просто кто-нибудь допишет скрипт, а потом можно будет разобрать по полочкам что к чему. Сказал же, опыта нет в javascript... Помогите дописать... Чего непонятного?


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