Appzia_website_design/assets/js/read.js

8 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2024-03-08 12:18:06 +00:00
/**
* @app ReadMoreJS
* @desc Breaks the content of an element to the specified number of words
* @version 1.0.0
* @license The MIT License (MIT)
* @author George Raptis | http://georap.gr
*/
(function(c,b,a){var d={};d.helpers={extendObj:function(){for(var g=1,e=arguments.length;g<e;g++){for(var f in arguments[g]){if(arguments[g].hasOwnProperty(f)){if(arguments[g][f]&&arguments[g][f].constructor&&arguments[g][f].constructor===Object){arguments[0][f]=arguments[0][f]||{};this.extendObj(arguments[0][f],arguments[g][f])}else{arguments[0][f]=arguments[g][f]}}}}return arguments[0]}};d.countWords=function(e){return e.split(/\s+/).length};d.generateTrimmed=function(f,e){return f.split(/\s+/).slice(0,e).join(" ")+"..."};d.init=function(w){var f={target:"",numOfWords:50,toggle:true,moreLink:"read more...",lessLink:"read less"};w=d.helpers.extendObj({},f,w);var q=b.querySelectorAll(w.target),t=q.length,v,s,r,u=[],n=[],m,k,e,h,p,g,o;for(m=0;m<t;m++){v=q[m].innerHTML;s=d.generateTrimmed(v,w.numOfWords);r=d.countWords(v);u.push(v);n.push(s);if(w.numOfWords<r-1){q[m].innerHTML=n[m];h=b.createElement("div");h.innerHTML='<a id="rm-more_'+m+'" class="rm-link" style="cursor:pointer;">'+w.moreLink+"</a>";q[m].parentNode.insertBefore(h,q[m].nextSibling)}}p=b.querySelectorAll(".rm-link");for(k=0,e=p.length;k<e;k++){p[k].onclick=function(){g=this.getAttribute("id");o=g.split("_")[1];if(this.getAttribute("data-clicked")!=="true"){q[o].innerHTML=u[o];if(w.toggle!==false){this.innerHTML=w.lessLink;this.setAttribute("data-clicked",true)}else{this.innerHTML=""}}else{q[o].innerHTML=n[o];this.innerHTML=w.moreLink;this.setAttribute("data-clicked",false)}}}};window.$readMoreJS=d}(this,this.document));