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

Сообщение от dmitriymar
архитектура -нет
говнокод -да
базовые оптимизации -нет
Вот как раз это мне и было интересно, только я не додумался так спросить). Самому очень трудно понять правильно сделал или нет, особенно когда есть много вариантов и все вроде бы работают так как планировал. Может вы мне каких нибудь задач или упражнений дадите на развитие понимания архитектуры приложений. А то вот например с объектами: вроде и понимаю как они устроены, как прототипное наследование осуществляется и тд и тп, а как правильно и куда лучше их применить, а куда нет не знаю.

Сообщение от dmitriymar
собрал бы всё в модуль
накинул бы наблюдатель ,и при заходе на изображение помеченное, классом , атрибутом ... включал бы лупу
а не создавал бы явно для каждого изображения объект
<!DOCTYPE html>
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>Прикольный виджет</title>
	<style type="text/css">
		.lupe {
			border: gray 4px solid;
			width: 200px;
			height: 200px;
			position: absolute;
			background-repeat: no-repeat;
			background-color: white;
			border-radius: 200px;
		}
	</style>
</head>

<body>
<img id="image" class="lup" src="http://4.bp.blogspot.com/-PaPJ6ulqi9c/Tf1-QMenB1I/AAAAAAAAADs/U_31Ap2LIjA/s1600/novye-interesnye-fotografii-ot-national-geographic-4.jpg" alt="" width="400">
<img id="image2" class="lup" src="http://2.bp.blogspot.com/-Edrn-TiDZlw/UPha3ogDR1I/AAAAAAAAA9s/esDb0tWcCdA/s1600/DSC06442.JPG" alt="" width="400">
<script type="text/javascript">
	(function (cls) {

		var handl = {
				mouseover: function (obj) {
					lupe.className = 'lupe';
					document.getElementsByTagName('body')[0].appendChild(lupe);
					lupe.style.backgroundImage = 'url(' + obj.src + ')';
					var coords = obj.getBoundingClientRect();
					top = coords.top * 4 + 100;
					left = coords.left * 4 + 100;
				},
				mouseout: function () {
					lupe.parentNode.removeChild(lupe);
				},
				mousemove: function (e) {
					if(time.count){
						return;
					}
					time.count = true;
					time.out = setTimeout(function() {
						time.count = false;
					}, 50);
					var event = e || window.event,
						eX = event.x || event.clientX,
						eY = event.y || event.clientY,
						y = -eY*4 + top + 'px',
						x = -eX*4 + left + 'px';
					lupe.style.top = 10 + eY + 'px';
					lupe.style.left = 10 + eX + 'px';
					lupe.style.backgroundPosition = x + ' ' + y;
				}
		};

		var lupe = document.createElement('div'),
			elements = document.getElementsByClassName(cls),
			time = {
				count: false
			},
			top,
			left;

		for(var i = 0; i < elements.length; i++) {
			elements[i].onmouseover = function () {handl.mouseover(this)};
			elements[i].onmouseout = function () {handl.mouseout()};
			elements[i].onmousemove = function (e) {handl.mousemove(e)};
		}

	})('lup');

</script>
</body>
</html>

Вторая работа над ошибками.

Последний раз редактировалось newbie7, 13.03.2013 в 18:40.
Ответить с цитированием