Показать сообщение отдельно
  #9 (permalink)  
Старый 12.03.2013, 23:22
Аватар для newbie7
Новичок на форуме
Отправить личное сообщение для newbie7 Посмотреть профиль Найти все сообщения от newbie7
 
Регистрация: 15.10.2012
Сообщений: 5

Спасибо всем, кто откликнулся.
Сообщение от dmitriymar
Ужасный участок .
1 coords = this.getBoundingClientRect() вычислять нужно 1 раз при заходе на элемент , а не всякий раз при движении мыши -данные статичны при всяком вычислении.
2 (eY - coords.top)*4+100 (eY - coords.top)*400
3 при каждом мове не стоит "перерисовывать" лупу . Оптимальная частота 30 -60 кадров в секунду . События движения мыши вызовутся гораздо в большем количестве чем эта частота , и при соответствующих условиях будет явно виден эффект торможения.
Первый пункт исправил. Сам объект coords поместил в конструктор.
Imgt.shower = function (e,obj) {
			var lupe = Imgt.lupe,
				event = e || window.event,
				eX = event.x || event.clientX,
				eY = event.y || event.clientY,
				y = -(eY - obj.coords.top)*4+100 + 'px',
				x = -(eX - obj.coords.left)*4+100 + 'px';

			lupe.style.top = 10 + eY + 'px';
			lupe.style.left = 10 + eX + 'px';
			lupe.style.backgroundPosition = x + ' ' + y;
		};

		Imgt.prototype.addEvent = function (event, handler) {
			var self = this;
			if(this.element.addEventListener) {
				return this.element.addEventListener(event, function(e) {handler(e,self)});
			}else if(this.element.attachEvent) {
				return this.element.attachEvent('on' + event, function(e) {handler(e,self)});
			}
		};

По второму пункту мне не совсем понятно. Пробовал исправлять и виджет просто перестаёт работать.
А с третьим так и вовсе тьма По идее нужно замедлить сам обработчик события mousemove, чтобы не так часто выполнялась функция Imgt.shower, но как это сделать пока не знаю.

Сообщение от dmitriymar
и конструкторы и прототипы и Dom + фишки Либо практически чистый копипаст, либо гений ,либо автор топика лукавит
В JS начал разбираться примерно в октябре 2012, но после того как чуть с ума не сошёл от рекурсии в функции вычисления факториала закинул. Вторая попытка началась с середины декабря, когда пришла книга Флэнэгана и пока продолжается (надеюсь и не закончится ). Возможно для опытного программиста, которому достаточно спецификацию прочитать, это и вечность, но для меня, с дипломом инженера-гидротехника, это недавно.
Копипаста здесь нет. Я как и, наверно, любой другой новичок хотел найти на форумах кого-нибудь вроде куратора, но прочитав не одну такую тему понял что бесполезно. И решил попробовать просто выложить код на обсуждение.
И до гения мне как до луны, потому как после некоторых тем просто мозги наружу
Ответить с цитированием