Last active
January 3, 2017 19:14
-
-
Save John-Henrique/2d2e5a70f9a15cc0387df73777685c5b to your computer and use it in GitHub Desktop.
Emoji do jeito simples e porco =)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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