免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3277 | 回复: 1
打印 上一主题 下一主题

jquery实现新浪微博的表情插件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-19 21:47 |只看该作者 |倒序浏览
jquery实现新浪微博的表情插件








插件按照新浪微博的表情插件以jquery方式给出了一种实现。
特点:

一次性初始化
可以全局控制(打开,关闭)
可以远程调取表情数据
提供对表情代号的转换 [用户灵活控制触发dom]


   初始化代码如:
   Javascript代码
  1. $.expBlock.initExp({   
  2.       
  3.     //用户表情结构数据   
  4.     expData: [{name: '默认',icons:[{url:"../resources/js/plugins/exp/img/zz2_thumb.gif",title:"织"},{url:"../resources/js/plugins/exp/img/horse2_thumb.gif",title:"神马"}]}]   
  5.     //包含textarea和表情触发的exp-holder   
  6.     holder: '.exp-holder',   
  7.     //exp-holder中的textarea输入dom,默认为textarea,   
  8.     textarea : 'textarea',   
  9.     //触发dom   
  10.     trigger : '.exp-block-trigger',   
  11.     //每页显示表情的组数   
  12.     grpNum : 5,   
  13.     //位置相对页面固定(absolute)||窗口固定(fixed)   
  14.     posType : 'absolute',   
  15.     //表情层数   
  16.     zIndex : '100'  
  17.       
  18. });   

  19.    $.expBlock.initExp({
  20.                                
  21.                                 //用户表情结构数据
  22.                                 expData: [{name: '默认',icons:[{url:"../resources/js/plugins/exp/img/zz2_thumb.gif",title:"织"},{url:"../resources/js/plugins/exp/img/horse2_thumb.gif",title:"神马"}]}]
  23.                                 //包含textarea和表情触发的exp-holder
  24.                                 holder: '.exp-holder',
  25.                                 //exp-holder中的textarea输入dom,默认为textarea,
  26.                                 textarea : 'textarea',
  27.                                 //触发dom
  28.                                 trigger : '.exp-block-trigger',
  29.                                 //每页显示表情的组数
  30.                                 grpNum : 5,
  31.                                 //位置相对页面固定(absolute)||窗口固定(fixed)
  32.                                 posType : 'absolute',
  33.                                 //表情层数
  34.                                 zIndex : '100'
  35.                                
  36.                         });
复制代码
使表情失效
Javascript代码
  1. $.expBlock.disableExp();  

  2. $.expBlock.disableExp();
复制代码
使表情重新启动
Javascript代码
  1. $.expBlock.enableExp();  

  2. $.expBlock.enableExp();
复制代码
Javascript代码
  1. //将字符串中如"[微笑]"类的表情代号替换为<img/>标签   
  2.                 var s = $.expBlock.textFormat(val);  

  3. //将字符串中如"[微笑]"类的表情代号替换为<img/>标签
  4.                                 var s = $.expBlock.textFormat(val);
复制代码
完整html调用示例
Html代码
  1. <!DOCTYPE HTML>  
  2. <html>  
  3.     <head>  
  4.         <meta charset="UTF-8" />  
  5.         <title>表情</title>  
  6.         <link rel="stylesheet" type="text/css" href="../resources/js/plugins/exp/css/style.css" />  
  7.         <script type="text/javascript" src="../resources/js/jquery-1.7.1.min.js"></script>  
  8.         <script type="text/javascript" src="../resources/js/plugins/exp/exp.js"></script>  
  9.         <style>  
  10.         <!--   
  11.             .holder-note{   
  12.                 width: 500px;   
  13.                 margin: 0 auto;   
  14.                 margin-top: 10px;   
  15.                 border: 1px dotted #ccc;   
  16.                 background-color: #f1f1f1;   
  17.             }   
  18.             ul{   
  19.                 list-style:disc;   
  20.                 list-style-position:inside;   
  21.                 margin-left: 2em;   
  22.             }   
  23.         -->  
  24.         </style>  
  25.     </head>  
  26.     <body>  
  27.         <div class="exp-holder" style="margin: 0 auto; width: 500px; ">  
  28.             <textarea id="J_t" style="width:100%;">点击"表情"添加</textarea>  
  29.             <a class="exp-block-trigger" href="javascript:;">表情</a>  
  30.             <button id="J_sbt" type="button">check</button>  
  31.         </div>  
  32.         <div id="J_resulte" style=" width: 500px; height: 200px; border:1px solid green; margin: 0 auto; "></div>  
  33.            
  34.         <div class="holder-note">  
  35.             <h2>说明</h2>  
  36.             <p>此表情插件借助jquery实现,特色:</p>  
  37.             <ul>  
  38.                 <li> 一次性初始化,</li>  
  39.                 <li>可以全局控制(打开,关闭),</li>  
  40.                 <li>可以远程调取表情数据,</li>  
  41.                 <li>提供对表情代号的转换.</li>  
  42.                 <p>  
  43.                 $.expBlock.initExp({</br>  
  44.                 expData:null</br>  
  45.                 holder: '.exp-holder',</br>  
  46.                 textarea : 'textarea',</br>  
  47.                 trigger : '.exp-block-trigger',</br>  
  48.                 grpNum : 5,</br>  
  49.                 posType : 'absolute',</br>  
  50.                 zIndex : '100'</br>  
  51.                 */   
  52.             });   
  53.                        
  54.                 </p>  
  55.             <h3>note: 需要提供的相应css文件支持</h3>  
  56.             </ul>  
  57.         </div>  
  58.            
  59.     </body>  
  60.     <script type="text/javascript">  
  61.         $(document).ready(function(){   
  62.             $.expBlock.initExp({   
  63.                 /*   
  64.                 //用户表情结构数据   
  65.                 expData: [{name: '默认',icons:[{url:"../resources/js/plugins/exp/img/zz2_thumb.gif",title:"织"},{url:"../resources/js/plugins/exp/img/horse2_thumb.gif",title:"神马"}]}]   
  66.                 //包含textarea和表情触发的exp-holder   
  67.                 holder: '.exp-holder',   
  68.                 //exp-holder中的textarea输入dom,默认为textarea,   
  69.                 textarea : 'textarea',   
  70.                 //触发dom   
  71.                 trigger : '.exp-block-trigger',   
  72.                 //每页显示表情的组数   
  73.                 grpNum : 5,   
  74.                 //位置相对页面固定(absolute)||窗口固定(fixed)   
  75.                 posType : 'absolute',   
  76.                 //表情层数   
  77.                 zIndex : '100'   
  78.                 */   
  79.             });   
  80.                
  81.             //使表情失效   
  82.             $.expBlock.disableExp();   
  83.             //使表情重新启动   
  84.             $.expBlock.enableExp();   
  85.                
  86.             $('#J_sbt').click(function(){   
  87.                 var s, ta = $('#J_t'), val = ta.val();   
  88.                 //将字符串中如"[微笑]"类的表情代号替换为<img/>标签   
  89.                 s = $.expBlock.textFormat(val);   
  90.                 //console.log(s);   
  91.                 $('#J_resulte').html(s);   
  92.             })   
  93.                
  94.             /*   
  95.              * ajax远程获取表情,注意同源策略   
  96.              * 要求返回的数据格式如:[{name: groupname,icons:[{url:'imgurl',title:"iconname"},{url:'imgurl',title:"iconname"}]},{name: groupname,icons:[{url:'imgurl',title:"iconname"},{url:'imgurl',title:"iconname"}]},...]   
  97.              */   
  98.             //$.expBlock.getRemoteExp(url);   
  99.                
  100.         })   
  101.     </script>  
  102. </html>  
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-01-19 22:25 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP