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
Форумы портала PHP.SU :: Версия для печати :: Измение размеров DOM
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Измение размеров DOM

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

1. DeUM - 20 Июля, 2016 - 16:06:31 - перейти к сообщению
Сделал плагин на 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.  

Правильный ли код и сильно ли нагружает так как постоянно идет отслеживание курсора на элементе?

 

Powered by ExBB FM 1.0 RC1