当前位置: 代码迷 >> Web前端 >> jquery兑现新浪微博的表情插件
  详细解决方案

jquery兑现新浪微博的表情插件

热度:114   发布时间:2012-08-24 10:00:21.0
jquery实现新浪微博的表情插件
插件按照新浪微博的表情插件以jquery方式给出了一种实现。
特点:
  • 一次性初始化
  • 可以全局控制(打开,关闭)
  • 可以远程调取表情数据
  • 提供对表情代号的转换
  • [用户灵活控制触发dom]

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

使表情失效
$.expBlock.disableExp();

使表情重新启动
$.expBlock.enableExp();

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


完整html调用示例
<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>表情</title>
		<link rel="stylesheet" type="text/css" href="../resources/js/plugins/exp/css/style.css" />
		<script type="text/javascript" src="../resources/js/jquery-1.7.1.min.js"></script>
		<script type="text/javascript" src="../resources/js/plugins/exp/exp.js"></script>
		<style>
		<!--
			.holder-note{
				width: 500px; 
				margin: 0 auto;
				margin-top: 10px;
				border: 1px dotted #ccc;
				background-color: #f1f1f1;
			}
			ul{
				list-style:disc;
				list-style-position:inside;
				margin-left: 2em;
			}
		-->
		</style>
	</head>
	<body>
		<div class="exp-holder" style="margin: 0 auto; width: 500px; ">
			<textarea id="J_t" style="width:100%;">点击"表情"添加</textarea>
			<a class="exp-block-trigger" href="javascript:;">表情</a>
			<button id="J_sbt" type="button">check</button>
		</div>
		<div id="J_resulte" style=" width: 500px; height: 200px; border:1px solid green; margin: 0 auto; "></div>
		
		<div class="holder-note">
			<h2>说明</h2>
			<p>此表情插件借助jquery实现,特色:</p>
			<ul>
				<li> 一次性初始化,</li>
				<li>可以全局控制(打开,关闭),</li>
				<li>可以远程调取表情数据,</li>
				<li>提供对表情代号的转换.</li>
				<p>
				$.expBlock.initExp({</br>
				expData:null</br>
				holder: '.exp-holder',</br>
				textarea : 'textarea',</br>
				trigger : '.exp-block-trigger',</br>
				grpNum : 5,</br>
				posType : 'absolute',</br>
				zIndex : '100'</br>
				*/
			});
					
				</p>
			<h3>note: 需要提供的相应css文件支持</h3>
			</ul>
		</div>
		
	</body>
	<script type="text/javascript">
		$(document).ready(function(){
			$.expBlock.initExp({
				/*
				//用户表情结构数据
				expData: [{name: '默认',icons:[{url:"../resources/js/plugins/exp/img/zz2_thumb.gif",title:"织"},{url:"../resources/js/plugins/exp/img/horse2_thumb.gif",title:"神马"}]}]
				//包含textarea和表情触发的exp-holder
				holder: '.exp-holder',
				//exp-holder中的textarea输入dom,默认为textarea,
				textarea : 'textarea',
				//触发dom
				trigger : '.exp-block-trigger',
				//每页显示表情的组数
				grpNum : 5,
				//位置相对页面固定(absolute)||窗口固定(fixed)
				posType : 'absolute',
				//表情层数
				zIndex : '100'
				*/
			});
			
			//使表情失效
			$.expBlock.disableExp();
			//使表情重新启动
			$.expBlock.enableExp();
			
			$('#J_sbt').click(function(){
				var s, ta = $('#J_t'), val = ta.val();
				//将字符串中如"[微笑]"类的表情代号替换为<img/>标签
				s = $.expBlock.textFormat(val);
				//console.log(s);
				$('#J_resulte').html(s);
			})
			
			/*
			 * ajax远程获取表情,注意同源策略
			 * 要求返回的数据格式如:[{name: groupname,icons:[{url:'imgurl',title:"iconname"},{url:'imgurl',title:"iconname"}]},{name: groupname,icons:[{url:'imgurl',title:"iconname"},{url:'imgurl',title:"iconname"}]},...]
			 */
			//$.expBlock.getRemoteExp(url);
			
		})
	</script>
</html>



欢迎讨论:406400939@qq.com
1 楼 boyu57013652 2012-06-05  
             
2 楼 boyu57013652 2012-06-05  
不好意思 测试 表情的 没有恶意
  相关解决方案