Skip to content

Instantly share code, notes, and snippets.

@John-Henrique
Last active January 3, 2017 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save John-Henrique/2d2e5a70f9a15cc0387df73777685c5b to your computer and use it in GitHub Desktop.
Save John-Henrique/2d2e5a70f9a15cc0387df73777685c5b to your computer and use it in GitHub Desktop.
Emoji do jeito simples e porco =)
/**
* Classe simples para adicionar emojis nos textos usando
* apenas JavaScript.
*
* @author John-Henrique
* @contact johnhenrique@gmail.com
* @since 2017-01-03
* @dependencies Você precisa ter as imagens dos emojis salvas no diretorio
* img do teu site
* @example Basta chamar o script usando <script src="emojis.js"></script>
* e iniciar a classe diretamente
* <script>
* elemento = document.getElementById( 'campoDeTexto' );
* elemento.value = emoji.show_emoji( elemento.value );
* </script>
**/
emoji = {
// arqui eu defini 2 emojis, você pode adicionar mais
emojis = [{codigo:":-)",imagem:"feliz"},{codigo:":-(",imagem:"triste"}],
init: function(){},
/**
* a variavel novo_emoji deve ter como valor um objeto, como
* {codigo:":-D",imagem:"super-feliz"}
*
* OBS: Do modo que escrevi você só pode adicionar 1 objeto (emoji)
* por chamada do método add_emoji, então para adicionar mais emojis
* você precisa chamar o método uma vez para cada novo emoji.
**/
add_emoji: function( novo_emoji ){
//aqui você pode fazer o incremento para adicionar emojis novos
this.emojis[ parseInt( this.emojis.length ) ] = novo_emoji;
},
show_emoji: function( str_texto ){
/**
* Aqui vamos fazer um loop percorrendo o array de objetos
* existente na variável global emojis.
* A cada loop iremos substituir os códigos pela imagem do
* emoji, também estamos adicionando espaços antes e depois
* da tag <IMG> isto vai permitir que o texto não fique colado
* no emoji, mas você pode remover os espaços se quiser ;-)
*
* A cada loop a variavel str_texto será sobrescrita
* recebendo como valor seu próprio valor + emojis
**/
for( i=0; i <= this.emojis.length; i++ ){
str_texto = str_texto.replace( this.emojis[i], ' <img src="img/emoji-'+ this.emojis[i] +'.gif"> ' );
}
return str_texto;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment