LINUX.ORG.RU

Вопрос о js


0

0

Привет, я никогда не писал на js, и мне вдруг понадобилось сделать «дышащий» текст. Я написал код, который работает, но кривой:

	function changeSize(t) {
		height_0 = 50;
		amplitude = 20;
		period = 6000.0;
		phase = 0.0;
		
		height = amplitude*Math.sin( 2*Math.PI*t*10/period + phase ) + height_0;
		$("#block").css('font-size',height);
	};
	
  $(document).ready(function(){
		$("#block").everyTime(10, 'timer2', changeSize );	
  });

Я хочу некого ооп, чтоб можно было сделать на подобие такого:

		var b = new Breather();
		b.period = 1200.0;
		$("#block").everyTime(10, 'timer2', b.changeSize );	

Подскажите как сделать такой класс.


По памяти пишу, не проверял:

[code] function Breather() { this.block = $('#block'); this.amplitude = 20; this.height_0 = 50; //.... this.changeSize = function () { height = this.amplitude*... this.block.css('font-size', height); }; } [/code]

anonymous
()
Ответ на: комментарий от anonymous

Я идиот, я не умею предпросмотр:)

 
function Breather() 
  { 
    this.block = $('#block'); 
    this.amplitude = 20; 
    this.height_0 = 50; 
    //.... 

    this.changeSize = function () 
      { 
        height = this.amplitude*... 
        this.block.css('font-size', height); 
      }; 
  }
anonymous
()
Ответ на: комментарий от trashymichael

>может лучше Breather.prototype.changeSize = ... ?

Вообще пишут так:

The use of prototype could have been applied to create all of the methods of the mycircle object, not just new ones. This gives a mixed response to performance. It will not have to store individual copies of the methods for each instance of the object, so it may require less memory, but it will require the browser to search the current and parent scopes to find the methods. This may cause a marginal delay. Generally, you should use what is appropriate for your code, and not base this decision on performance (unless you are dealing with a very specific controlled environment):

http://www.howtocreate.co.uk/tutorials/javascript/objects

Но имхо в случае автора разницы не будет.

anonymous
()
Ответ на: комментарий от trashymichael

>а я все же считаю что prototype больше подходит автору.

Почему?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.