index.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <template>
  2. <ul id="emojiList" class="emoji-list pub-scroll-box">
  3. <li v-for="item in emojiList"
  4. :key="item"
  5. v-html="item"
  6. @click="handleClick"></li>
  7. </ul>
  8. </template>
  9. <script>
  10. export default {
  11. name: 'emojiList',
  12. data () {
  13. return {
  14. emojiList: [
  15. '&#x1F600;',
  16. '&#x1F601;',
  17. '&#x1F602;',
  18. '&#x1F603;',
  19. '&#x1F604;',
  20. '&#x1F605;',
  21. '&#x1F606;',
  22. '&#x1F607;',
  23. '&#x1F608;',
  24. '&#x1F609;',
  25. '&#x1F60A;',
  26. '&#x1F60B;',
  27. '&#x1F60C;',
  28. '&#x1F60D;',
  29. '&#x1F60E;',
  30. '&#x1F60F;',
  31. '&#x1F610;',
  32. '&#x1F611;',
  33. '&#x1F612;',
  34. '&#x1F613;',
  35. '&#x1F614;',
  36. '&#x1F615;',
  37. '&#x1F616;',
  38. '&#x1F617;',
  39. '&#x1F618;',
  40. '&#x1F619;',
  41. '&#x1F61A;',
  42. '&#x1F61B;',
  43. '&#x1F61C;',
  44. '&#x1F61D;',
  45. '&#x1F61E;',
  46. '&#x1F61F;',
  47. '&#x1F620;',
  48. '&#x1F621;',
  49. '&#x1F622;',
  50. '&#x1F623;',
  51. '&#x1F624;',
  52. '&#x1F625;',
  53. '&#x1F626;',
  54. '&#x1F627;',
  55. '&#x1F628;',
  56. '&#x1F629;',
  57. '&#x1F62A;',
  58. '&#x1F62B;',
  59. '&#x1F62C;',
  60. '&#x1F62D;',
  61. '&#x1F62E;',
  62. '&#x1F62F;',
  63. '&#x1F630;',
  64. '&#x1F631;',
  65. '&#x1F632;',
  66. '&#x1F633;',
  67. '&#x1F634;',
  68. '&#x1F635;',
  69. '&#x1F636;',
  70. '&#x1F637;'
  71. ],
  72. animalList: [
  73. '&#x1F63A;',
  74. '&#x1F638;',
  75. '&#x1F639;',
  76. '&#x1F63B;',
  77. '&#x1F63C;',
  78. '&#x1F63D;',
  79. '&#x1F640;',
  80. '&#x1F63F;',
  81. '&#x1F63E;',
  82. '&#x1F648;',
  83. '&#x1F649;',
  84. '&#x1F64A;',
  85. '&#x1F476;',
  86. '&#x1F9D2;',
  87. '&#x1F466;',
  88. '&#x1F467;',
  89. '&#x1F9D1;',
  90. '&#x1F468;',
  91. '&#x1F469;',
  92. '&#x1F9D3;',
  93. '&#x1F474;',
  94. '&#x1F608;',
  95. '&#x1F47F;',
  96. '&#x1F921;',
  97. '&#x1F479;',
  98. '&#x1F47A;',
  99. '&#x1F480;',
  100. '&#x2620;',
  101. '&#x1F47B;',
  102. '&#x1F47D;',
  103. '&#x1F47E;',
  104. '&#x1F916;',
  105. '&#x1F4A9;',
  106. '&#x1F412;',
  107. '&#x1F98D;',
  108. '&#x1F436;',
  109. '&#x1F415;',
  110. '&#x1F429;',
  111. '&#x1F43A;',
  112. '&#x1F98A;',
  113. '&#x1F99D;',
  114. '&#x1F431;',
  115. '&#x1F408;',
  116. '&#x1F981;',
  117. '&#x1F42F;',
  118. '&#x1F405;',
  119. '&#x1F406;',
  120. '&#x1F434;',
  121. '&#x1F40E;',
  122. '&#x1F984;',
  123. '&#x1F993;',
  124. '&#x1F98C;',
  125. '&#x1F42E;',
  126. '&#x1F402;',
  127. '&#x1F403;',
  128. '&#x1F404;',
  129. '&#x1F437;',
  130. '&#x1F416;',
  131. '&#x1F417;',
  132. '&#x1F43D;',
  133. '&#x1F40F;',
  134. '&#x1F411;',
  135. '&#x1F410;',
  136. '&#x1F42A;',
  137. '&#x1F42B;',
  138. '&#x1F999;',
  139. '&#x1F992;',
  140. '&#x1F418;',
  141. '&#x1F98F;',
  142. '&#x1F99B;',
  143. '&#x1F42D;',
  144. '&#x1F401;',
  145. '&#x1F400;'
  146. ]
  147. }
  148. },
  149. mounted () {
  150. // var ul = document.getElementById('emojiList')
  151. // twemoji.parse(ul, { 'size': 16 })
  152. },
  153. methods: {
  154. handleClick ($el) {
  155. this.$emit('addEmoji', $el.target.innerHTML)
  156. }
  157. }
  158. }
  159. </script>
  160. <style lang="scss" scoped>
  161. .emoji-list{
  162. max-height: 180px;
  163. overflow: auto;
  164. }
  165. ul.emoji-list * {
  166. -webkit-user-select: none;
  167. -moz-user-select: none;
  168. -ms-user-select: none;
  169. user-select: none;
  170. }
  171. ul.emoji-list li {
  172. font-size: 28px;
  173. border-radius: 4px;
  174. display: inline-block;
  175. padding: 6px;
  176. cursor: pointer;
  177. &:hover{
  178. background: #eeeeee;
  179. }
  180. }
  181. img.emoji {
  182. cursor: pointer;
  183. height: 1em;
  184. width: 1em;
  185. margin: 0 .05em 0 .1em;
  186. vertical-align: -0.1em;
  187. }
  188. </style>