插件按照新浪微博的表情插件以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>