forked from jedfoster/Readmore.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readmore.min.js
3 lines (3 loc) · 1.49 KB
/
readmore.min.js
1
2
3
(function(c){function g(a,b){this.element=a;this.options=c.extend({},h,b);this._defaults=h;this._name=f;this.init()}var f="readmore",h={speed:100,maxHeight:200,moreLink:'<a href="#">Read More</a>',lessLink:'<a href="#">Close</a>'};g.prototype={init:function(){var a=this;c(this.element).each(function(){var b=c(this),d=b.css("max-height").replace(/[^-\d\.]/g,"")>a.options.maxHeight?b.css("max-height").replace(/[^-\d\.]/g,""):a.options.maxHeight;"none"!=b.css("max-height")&&b.css("max-height","none");
b.data("boxHeight",b.height());if(b.innerHeight()<d)return!0;b.after(c(a.options.moreLink).on("click",function(c){a.openSlider(this,b,c)}));sliderHeight=d;b.css("height",sliderHeight).css("overflow","hidden")})},openSlider:function(a,b,d){d.preventDefault();var e=this;d=c(b).data().boxHeight+"px";c(b).animate({height:d},{duration:e.options.speed});c(a).replaceWith(c(e.options.lessLink).on("click",function(a){e.closeSlider(this,b,a)}))},closeSlider:function(a,b,d){d.preventDefault();var e=this;c(b).animate({height:sliderHeight},
{duration:e.options.speed});c(a).replaceWith(c(e.options.moreLink).on("click",function(a){e.openSlider(this,b,a)}))}};c.fn[f]=function(a){var b=arguments;if(void 0===a||"object"===typeof a)return this.each(function(){c.data(this,"plugin_"+f)||c.data(this,"plugin_"+f,new g(this,a))});if("string"===typeof a&&"_"!==a[0]&&"init"!==a)return this.each(function(){var d=c.data(this,"plugin_"+f);d instanceof g&&"function"===typeof d[a]&&d[a].apply(d,Array.prototype.slice.call(b,1))})}})(jQuery);