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>
相關文章
相關標籤/搜索