Покритикуйте код)
Никогда не писал в стиле ОПП, поэтому нужна помощь...скажите что не правильно и как лучше было это все написать.
function Slide( opts ) { this.elemPos = $(opts.pos).offset().top; this.elem = $(opts.elem), this.exit = $(opts.exit); this.startw = opts.startw, this.starth = opts.starth, this.endw = opts.endw, this.endh = opts.endh; this.init = function() { var that = this need = false, toggle = true; $(window).bind("scroll", function() { if ( that.elemPos <= $(window).scrollTop() + $(window).height() && !need ) { that.elem.animate({'right' : '0px' }, 400, function() { need = true; toggle = true; }); } else if ( need && that.elemPos > $(window).scrollTop() + $(window).height() ) { that.elem.animate({'width' : that.endw, 'height' : that.endh}, 400, function() { toggle = false; }) } }); } } Slide.prototype.show = function() { this.init(); var elem = this.elem, self = this; function _transform( that ) { if ( toggle ) { elem.animate({ 'width' : self.endw, 'height' : self.endh },400, function() { toggle = false; $(that).text('+'); }); } else { elem.animate({ 'width' : self.startw, 'height' : self.starth },400, function(){ toggle = true; $(that).text('×') }); } } this.exit.bind("click", function() { _transform(this); }); } $(function(){ var slide = new Slide({ pos : '#position', elem : '.recomended', exit : '.exit_recomended', startw : 400, starth : 125, endw : 225, endh : 30 }); slide.show(); }); ссылка на готовое решение http://www.pxleyes.com/blog/2011/12/...blow-you-away/ когда доскроливаешь до конца выплывает попап |
noname1990,
Ксать самое простое - просто поместить в нужном месте экрана прозрачный div с позицией absolute и шириной: по ширине экрана - при попадании курсора в который окно и выплывает, высоту данной подложки-сенсора делаем необходимой от экрана и уже |
Всё, что находится в функции-конструкторе Slide, должно быть переписано в прототип как свойства, которые имеет каждый экземпляр.
Конечно, свои свойства должны перекрывать аналогичные из прототипа. |
если я их засуну в прототип, то как мне ему значение передавать?
|
Часовой пояс GMT +3, время: 14:17. |