Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2013, 23:50
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

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

function reduceBlock(){
document.getElementById('edittemplate').style.width = '1150px';
document.getElementById('resize').style.width = '1150px';
document.getElementById('reduce').style.display = "none";
document.getElementById('increase').style.display = "inline";
}

function increaseBlock(){
document.getElementById('edittemplate').style.width = '850px';
document.getElementById('resize').style.width = '850px';
document.getElementById('reduce').style.display = "inline";
document.getElementById('increase').style.display = "none";
}
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2013, 00:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function reduceBlock(a,b,c,d){
document.getElementById('edittemplate').style.width = a;
document.getElementById('resize').style.width =b';
document.getElementById('reduce').style.display = c;
document.getElementById('increase').style.display = d;
}
reduceBlock("1150px","1150px", "none","inline");

//Эту строку запускаем при свертывании
reduceBlock("850px","850px","inline", "none");
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2013, 00:15
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2013, 01:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function reduceBlock(ShowHid){
function b(id) {
   return document.getElementById(id).style;
}
var a='850px,850px,inline,none'.split(',');
if(ShowHid)ar='1150px,1150px,none,inline'.split(',');
b('edittemplate').width = a[0];
b('resize').width =a[1];
b('reduce').display= a[2];
b('increase').display = a[3];
}

reduceBlock(1);//Разворачиваем;
reduceBlock(0);//Cворачиваем;

Число символов
Пост 2 = 387
Пост 3 = 375
Пост 4 = 376
Дзен Выигрывает!

Последний раз редактировалось Deff, 08.02.2013 в 01:29.
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2013, 01:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Дзен-трансгуманист
Продолжаем гонку
388

Последний раз редактировалось Deff, 08.02.2013 в 02:11.
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2013, 02:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<!--СЧЁТЧИК СИМВОЛОВ-->
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<textarea id="reply" oninput="tstLen()" rows=7 cols="50"></textarea>
<script>var a,L,epl=$("#reply"),str='<small id="plng" style="border:1px solid;padding:2px 3px;">Написано символов: <b>00</b> </small><br>';epl.before(str);function epl3(){a=epl.val().length;if(a>9){L=''}else{L='0'};$("#plng b").text(L+a)};epl3();$(".pl-quote").click(function (){setTimeout('epl3()',100)});epl.bind('mouseout mousemove keydown keypress keyup',function(e){epl3()});</script>

Сообщение от Дзен-трансгуманист
Всё, сдаюсь, устал.
342

....(Лан, я тоже баиньки... Сноф!

Последний раз редактировалось Deff, 08.02.2013 в 02:13.
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2013, 02:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Дзен-трансгуманист
Deff,
342.
Я Отметил (в Посте Выше
Ответить с цитированием
  #8 (permalink)  
Старый 08.02.2013, 11:33
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

я тут тоже решил поиграть с вами, 235 с вызовом)))
function reduceBlock(c,d){for(var b=["edittemplate","resize","reduce","increase"],a=b.length;;a--)document.getElementById(b[a]).style[c[a]]=d[a]};

 reduceBlock(["width","width","display","display"],["1150px","1150px","none","inline"]);


(код не проверял, но работать должен)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #9 (permalink)  
Старый 08.02.2013, 12:16
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

Ну спасибо всем!
Ответить с цитированием
  #10 (permalink)  
Старый 08.02.2013, 12:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от cyber
235 с вызовом
cyber,
Обман - нет запуска второй функции
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Помогите оптимизировать скрипт redqueen Общие вопросы Javascript 0 24.02.2011 22:14
Помогите оптимизировать скрипт смены изображений с анимацией Khmelevsky Элементы интерфейса 5 06.03.2010 19:02
Помогите настроить скрипт раскрывающегося меню melomanfm Работа 6 10.08.2009 01:21