模擬電子簽章蓋章效果的jQuery插件源碼
更新時間:2013年06月24日 10:56:40 作者:
模擬電子簽章蓋章效果的jQuery插件源碼,需要的朋友可以參考一下
客戶提了個需求,需要在已審核的文檔上加蓋公章,網(wǎng)上找了找沒有現(xiàn)成的,自己動手豐衣足食
老規(guī)矩,上圖看效果:
可以內(nèi)嵌在各種容器中,已包裝成jQuery插件,調(diào)用方便。點擊“蓋章”按鈕添加一個新章,可以自由拖動位置,點擊確定后保存并觸發(fā)回調(diào)函數(shù)方便處理保存,有需要的下載試試。
[javascript]
復制代碼 代碼如下:
/*
desc:jQuery模擬蓋章
author:hyf
date:2012-11-08
*/
;$.fn.zSign = function (options) {
var _s = $.extend({
img: '',
width: 120,
height: 120,
offset: 8, //邊界值
callBack: null
}, options || {});
var _parent = $(this).addClass('zsign');
var range = {
minX: _s.offset,
minY: _s.offset,
maxX: _parent.width() - _s.width - _s.offset - 18, //扣去2個padding=8px以及2個邊框1px
maxY: _parent.height() - _s.height - _s.offset - 18
};
var _btnPanel = $("<div class='panel'><button class='btn add' >蓋 章</button><button class='btn cancel'>關 閉</button></div>").appendTo(_parent);
var _html = "<div class='sign' style='height:" + _s.height + "px;width:" + _s.width + "px;top:" + _s.offset + "px;left:" + _s.offset + "px'><img src='" + _s.img + "' draggable='false'/><button class='btn ok' >確定</button><button class='btn del' >刪除</button></div>";
var _add = $('.add', _btnPanel).click(function (e) {
_add.attr('disabled', 'disabled');
var sign = $(_html).appendTo(_parent);
$('.ok', sign).click(function () {
//確定蓋章
sign.addClass('ok').off('mousedown').find('.btn').remove();
_add.removeAttr('disabled');
if (_s.callBack) {
_s.callBack.call(this, { img: _s.img, top: parseInt(sign.css('top')), left: parseInt(sign.css('left')) });
}
});
$('.del', sign).click(function () {
//取消蓋章
sign.remove();
_add.removeAttr('disabled');
});
//綁定移動事件
sign.on('mousedown', function (e) {
sign.data('x', e.clientX);
sign.data('y', e.clientY);
var position = sign.position();
$(document).on('mousemove', function (e1) {
var x = e1.clientX - sign.data('x') + position.left;
var y = e1.clientY - sign.data('y') + position.top;
x = x < range.minX ? range.minX : x;
x = x > range.maxX ? range.maxX : x;
y = y < range.minY ? range.minY : y;
y = y > range.maxY ? range.maxY : y;
sign.css({ left: x, top: y });
}).on('mouseup', function () {
$(this).off('mousemove').off('mouseup');
});
});
});
$('.cancel', _btnPanel).click(function () {
var r = true;
if (_add.attr('disabled') == 'disabled') {
if (!confirm("未確定的蓋章將被取消,確定要關閉嗎?")) {
r = false;
}
}
if (r) {
//刪除未確定位置的蓋章
$('.sign:not(.ok)', _parent).remove();
_btnPanel.remove();
}
});
};
[css]
復制代碼 代碼如下:
.zsign .panel
{
position: absolute;
top: 8px;
right: 8px;
}
.zsign .btn
{
display: inline-block;
padding: 4px 10px 4px;
margin-bottom: 0;
font-size: 13px;
line-height: 18px;
color: #333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
background-color: whiteSmoke;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(#E6E6E6));
background-repeat: repeat-x;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border: 1px solid #CCC;
border-bottom-color: #B3B3B3;
-webkit-border-radius: 4px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
cursor: pointer;
-webkit-user-select: none;
}
.zsign .btn:hover
{
color: #333;
text-decoration: none;
background-color: #E6E6E6;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
}
.zsign .btn[disabled]
{
cursor: default;
background-image: none;
background-color: #E6E6E6;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.zsign .cursor
{
cursor: none;
}
.zsign .show
{
display: block;
}
.zsign .hide
{
display: none;
}
.zsign .sign
{
position: absolute;
cursor: move;
border: 1px dashed #ccc;
padding: 8px;
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
}
.zsign .sign.ok
{
cursor: default;
border-color:transparent;
}
.zsign .sign img
{
max-height: 100%;
max-width: 100%;
}
.zsign .sign .btn
{
padding: 2px 6px;
font-size: 11px;
line-height: 14px;
position: absolute;
}
.zsign .sign .btn.del
{
bottom: 4px;
right: 4px;
}
.zsign .sign .btn.ok
{
bottom: 4px;
right: 50px;
}
[html]
復制代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>測試</title>
<link href="jquery.zsign.css" rel="stylesheet" type="text/css" />
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="jquery.zsign.js" type="text/javascript"></script>
</head>
<body>
<div id="test" style="width:800px;height:500px;border:1px solid red;margin:40px auto; position:relative;"></div>
<script>
var a =$("#test").zSign({ img: '1.gif'});
</script>
</body>
</html>
相關文章
利用jquery如何從json中讀取數(shù)據(jù)追加到html中
這篇文章主要給大家介紹了關于利用jquery如何從json中讀取數(shù)據(jù)追加到html中的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編一起來看看吧。2017-12-12treepanel動態(tài)加載數(shù)據(jù)實現(xiàn)代碼
本文介紹一個treepanel動態(tài)加載數(shù)據(jù)的例子,需要了解的朋友可以參考下2012-12-12使用jQuery fancybox插件打造一個實用的數(shù)據(jù)傳輸模態(tài)彈出窗體
模態(tài)窗體已經(jīng)成為Web開發(fā)人員設計界面時經(jīng)常要使用的傳輸數(shù)據(jù)的方式;通過模態(tài)窗口,可以提高網(wǎng)站的可用性;你可以在你的郵件里收到用戶發(fā)送的反饋消息2013-01-01