Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Измение размеров DOM

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
DeUM
Отправлено: 20 Июля, 2016 - 16:06:31
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Сделал плагин на jQuery "resize" для изменения размеров DOM элементов.
И хотелось бы узнать есть ли минусы... нагрузка или что-нибудь подобное и упростить...
Суть плагина в том что он отслеживает расположение на элементе
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. //Устанавливаем курсор
  3. $(document).on('mouseover', options.selector, function () { // Изменяем курсор на элементе
  4.         $this = $(this);
  5.         $(document).on('mousemove.resize', function (event) {
  6.             if($this) {
  7.                 console.log('asd')
  8.                 if(event.pageX > $this.offset().left + $this.width() - options.size &&
  9.                     event.pageY > $this.offset().top + $this.height() - options.size) cursor = 'nw-resize'; //если курсор в правом нижнем углу "nw-resize"
  10.                 else if(event.pageX > $this.offset().left + $this.width() - options.size) cursor = 'w-resize'; //если курсор справа на элементе  "w-resize"
  11.                 else if(event.pageY > $this.offset().top + $this.height() - options.size) cursor = 'n-resize';//если курсор внизу элемента "n-resize"
  12.                 else cursor = 'default'; //если нет то стандартный
  13.                 $('body').css('cursor', cursor); //меняем курсор
  14.             }
  15.         })
  16.     });
  17. а тут изменяем размер
  18. $(document).on('mousedown.resize', options.selector, function (event) {
  19.         resize = $(this); type = false;
  20.         shift = {
  21.             x: event.pageX - resize.offset().left - resize.width(),
  22.             y: event.pageY - resize.offset().top - resize.height(),
  23.         }
  24.         if(event.pageX > resize.offset().left + resize.width() - options.size &&
  25.             event.pageY > resize.offset().top + resize.height() - options.size)
  26.             type = 'xy';
  27.         else if(event.pageX > resize.offset().left + resize.width() - options.size)
  28.             type = 'x';
  29.         else if(event.pageY > resize.offset().top + resize.height() - options.size)
  30.             type = 'y';
  31.         else type = false;
  32.  
  33.         $(document).on('mousemove.resize', function (event) {
  34.             if(resize) {
  35.                 if(type == 'xy') resize.css({width: event.pageX - resize.offset().left+"px", height: event.pageY - resize.offset().top+"px"});
  36.                 else if(type == 'x') resize.width(event.pageX - resize.offset().left);
  37.                 else if(type == 'y') resize.height(event.pageY - resize.offset().top);
  38.                 event.preventDefault();
  39.             }
  40.         })
  41.     })
  42.     $(document).on('mouseup.resize', function () { // обнуляем
  43.         resize = null;
  44.     })
  45.     $(document).on('mouseout.resize', options.selector, function () { // курсор на стандартный
  46.         $this = null; $('body').css('cursor', 'default');
  47.     })
  48.  

Правильный ли код и сильно ли нагружает так как постоянно идет отслеживание курсора на элементе?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB