Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение ширины div растягиванием мышкой 
:(
    Опции темы
shine
Дата 19.11.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 20.10.2006

Репутация: нет
Всего: 5



Можно ли как-то сделать растягивание div-а мышкой? По аналогии с тем как мы меняем размеры окна: за край схватил и потянул куда тебе нужно.

Спасибо.
--------------------
An investment in knowledge always pays the best interest. © Benjamin Franklin
PM MAIL   Вверх
AKS
Дата 19.11.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



shine, вот "нарисовал" маленький пример:
Код

function hook(e) {
  var el = e.srcElement || e.target;
  el.startX = (e.type == 'mousedown') ? 
    (e.clientX - el.offsetWidth) : 0;
}
function move(e) {
  var el = e.srcElement || e.target;
  if(el.startX) 
    el.style.width = e.clientX - el.startX + 'px';
  (e.preventDefault) ? e.preventDefault() : e.returnValue = false;
}
if(!document.attachEvent) {
  document.attachEvent = function(e, f) {
    this.addEventListener(e.substr(2), f, false);
  }

document.attachEvent('onmouseup', hook);
document.attachEvent('onmousemove', move);

Код

<div style='width:100px;height:100px;background-color:black;position:relative;' 
  onmousedown='hook(event)' onmouseout='hook(event)'></div>


Это сообщение отредактировал(а) AKS - 19.11.2006, 18:08
PM MAIL   Вверх
shine
Дата 19.11.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 20.10.2006

Репутация: нет
Всего: 5



AKS, спасибо.
Вот такой получился вариант работающий в IE6, FF и Opera:

Код

function hook(e) 
{
    var el;
    if(e.srcElement) el = e.srcElement;
    else el = e.target;

    el.startX = (e.type == 'mousedown') ? (e.clientX - el.offsetWidth) : 0;
}
    
function move(e) 
{
    var el;
    if(e.srcElement) el = e.srcElement;
    else el = e.target;
    
    if(el.startX) el.style.width = e.clientX - el.startX + 'px';
    
    e.returnValue = false;


if (document.addEventListener)
{
    document.addEventListener('mouseup', hook, false); 
    document.addEventListener('mousemove', move, false); 
}
else if (document.attachEvent)
{
    document.attachEvent('onmouseup', hook);
    document.attachEvent('onmousemove', move);        
}

--------------------
An investment in knowledge always pays the best interest. © Benjamin Franklin
PM MAIL   Вверх
12345c
Дата 19.11.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Растягивание таблиц: http://js2.ru/example/zzzz49.htm

Это сообщение отредактировал(а) 12345c - 3.3.2008, 13:22


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Elfet
Дата 31.1.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



AKS, а можно пояснить пример? Я не очень понимаю как он работает. Хочу сделать растягивание, только определённых элементов на странице, а не всех.  smile 


--------------------
PM MAIL WWW Skype   Вверх
pythonwin
Дата 2.2.2007, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Elfet, измени вот эту часть:

Код

<script>d=document;g=function(a){return d.getElementById(a);}
var FF=d.all==null; /*isGecko*/
    var mDown=0;    //установки скрипта
    var posX;    //переменные скрипта
onload=function(){tdTab=[];tdTab[1]=g('tdTb1');tdTab[2]=g('tdTb2');tdTab[3]=g('tdTb3');
  if(IE=d.all&&!self.opera)g('divTdPt1').style.display='none';
  widPt3=IE?0:g('ptPt3').offsetWidth+2;
}

d.onmousedown=function(e){var t;
    if((t=FF?e.target:event.srcElement).className!="tdResize")return;    //отсечка лишнего
    mDown=t.id.charAt(8);
    posX=(FF?e.pageX:event.x+d.body.scrollLeft)-tdTab[mDown].offsetWidth;    //начальная точка захвата
    posTbl=(FF?e.pageX:event.x+d.body.scrollLeft)-g('tdResize'+mDown).offsetParent.offsetWidth;
}
d.onmousemove=function eMove(e){if(!mDown)return;
    tdTab[mDown].style.width=
      xx=Math.max(0,(FF?e.pageX:event.x+d.body.scrollLeft)-posX);
      g('tdResize'+mDown).style.width=IE?4:1;
      isPt3=(g('divTdSp'+mDown).offsetWidth>g('divTdTb'+mDown).offsetWidth)?widPt3:0;
      g('divTdPt'+mDown).style.display=IE||!isPt3?'none':'table';
      g('d2').innerHTML
        =g('divTdSp'+mDown).offsetWidth+' '
        +g('divTdTb'+mDown).offsetWidth+' '
        +isPt3
      g('divTdTb'+mDown).style.width=xx-isPt3;
      g('tdResize'+mDown).offsetParent.style.width=(Math.max(0,(FF?e.pageX:event.x+d.body.scrollLeft)-posTbl))+6;
    
}
d.onmouseup=function(e){mDown=0;}
d.ondragstart=d.onselectstart=function(){if(event.srcElement.className=="tdResize")event.returnValue=!1;}
</script>


только сделай чтобы 
d не был равен document, а тому объекту, размер, которого ты хочешь менять smile
PM WWW GTalk Jabber   Вверх
Elfet
Дата 2.2.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ок! Спасибо!  smile 


--------------------
PM MAIL WWW Skype   Вверх
Avb
Дата 5.2.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.7.2006

Репутация: 4
Всего: 13



PM MAIL   Вверх
feosr
Дата 18.4.2007, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 20.1.2007
Где: Минск

Репутация: нет
Всего: 2



Мне понравилась реализация скрипта, но можноли уменьшить объем скрипта? Для работы ему нужны 3 скрипта, сумарный вес которых почти пол метра((
PM MAIL WWW ICQ   Вверх
arbimbmet
Дата 31.8.2022, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 31.8.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Objegog
Дата 7.9.2022, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.9.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
hipAppops
Дата 10.9.2022, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.9.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
anceria
Дата 13.9.2022, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.9.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
pelpigh
Дата 17.9.2022, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.9.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
zesurne
Дата 7.10.2022, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.10.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1687 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.