亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

模擬電子簽章蓋章效果的jQuery插件源碼

2019-11-20 22:37:43
字體:
來源:轉載
供稿:網友

客戶提了個需求,需要在已審核的文檔上加蓋公章,網上找了找沒有現成的,自己動手豐衣足食

老規矩,上圖看效果:

   
     可以內嵌在各種容器中,已包裝成jQuery插件,調用方便。點擊“蓋章”按鈕添加一個新章,可以自由拖動位置,點擊確定后保存并觸發回調函數方便處理保存,有需要的下載試試。

[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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产色综合| 日韩精品有码在线观看| 欧美大荫蒂xxx| 国产精品露脸自拍| 欧美日韩国产中文字幕| 久久久久久久999精品视频| 91极品视频在线| 久久久久久综合网天天| zzjj国产精品一区二区| 国产网站欧美日韩免费精品在线观看| 欧美日韩福利视频| 久久频这里精品99香蕉| 国产欧美日韩精品专区| 欧美日韩中文在线| 日韩免费av在线| 日本伊人精品一区二区三区介绍| 久久久久久免费精品| 国产精品激情自拍| 久久91超碰青草是什么| 国产精品亚洲激情| 国产一区二区三区在线免费观看| 精品国产一区二区三区四区在线观看| 久久影视电视剧凤归四时歌| 成人久久精品视频| 国产精彩精品视频| 国产欧美日韩91| 精品成人乱色一区二区| 丝袜情趣国产精品| 精品亚洲夜色av98在线观看| 久久综合伊人77777尤物| 精品免费在线观看| 丝袜亚洲欧美日韩综合| 亚洲精品中文字幕女同| 欧美大片网站在线观看| 欧美极品美女电影一区| 日韩欧美在线第一页| 国产精品美女av| 久久中文字幕在线| 日韩精品高清视频| 亚洲一区二区日本| 国产91免费看片| 色琪琪综合男人的天堂aⅴ视频| 日韩在线不卡视频| 性欧美在线看片a免费观看| 国语自产精品视频在免费| 中文字幕视频一区二区在线有码| 国产亚洲人成a一在线v站| 97精品视频在线播放| 国产91精品久久久久久| 久久99久国产精品黄毛片入口| 在线观看日韩专区| 日韩欧美精品免费在线| 欧美大片在线免费观看| 黄色一区二区三区| 久久精品电影网站| 欧美成人午夜激情在线| 亚洲91av视频| 亚洲999一在线观看www| 欧美国产激情18| 国产xxx69麻豆国语对白| 日本一区二区三区在线播放| 欧美—级高清免费播放| 亚洲国产精品成人一区二区| 久久久亚洲精选| 欧美野外wwwxxx| 亚洲国产精品yw在线观看| 亚洲天堂免费视频| 亚洲女人天堂色在线7777| 亚洲深夜福利网站| 91精品久久久久久久久| 2021久久精品国产99国产精品| 日韩精品999| 精品国产91久久久久久老师| 亚洲三级 欧美三级| 国产精品第8页| 91日韩在线视频| 欧洲成人免费aa| 久久久亚洲福利精品午夜| 精品国产乱码久久久久久婷婷| 在线成人一区二区| 久久99精品久久久久久青青91| 国产欧美精品一区二区| 成人在线播放av| 色综合久综合久久综合久鬼88| 97超级碰碰碰| 成人网欧美在线视频| 国产性猛交xxxx免费看久久| 日韩精品欧美国产精品忘忧草| 精品色蜜蜜精品视频在线观看| 欧美丝袜一区二区| 国产精品欧美激情| 尤物99国产成人精品视频| 日韩国产激情在线| 日本一区二三区好的精华液| 亚洲aaa激情| 96国产粉嫩美女| 欧美一级电影在线| 亚洲第一精品久久忘忧草社区| 在线观看欧美日韩国产| 欧美猛交ⅹxxx乱大交视频| 国产精品日韩欧美大师| 欧美日本精品在线| 亚洲成人性视频| 欧美性猛交xxxx| 日韩av色综合| 国产一区玩具在线观看| 国产精品久久久久高潮| 亚洲第一区在线| 亚洲精品综合精品自拍| 亚洲欧美激情一区| 亚洲欧美三级在线| 久久久成人av| 日韩欧美有码在线| 午夜精品免费视频| 国产精品电影一区| 亚洲成年人影院在线| 一道本无吗dⅴd在线播放一区| 精品视频—区二区三区免费| 国产福利成人在线| 国产精品一久久香蕉国产线看观看| 亚洲精品免费av| 这里只有精品久久| 久久精品国产99国产精品澳门| 岛国视频午夜一区免费在线观看| 国产精品日韩专区| 国产精品色午夜在线观看| 成人免费福利在线| 久久久久久久久91| 欧美日韩电影在线观看| www.日韩.com| 亚洲欧洲在线播放| 亚洲精品网址在线观看| 国产欧美一区二区三区久久| 久久精品久久精品亚洲人| 欧美日韩免费区域视频在线观看| 欧美视频在线观看 亚洲欧| 日韩成人xxxx| 少妇精69xxtheporn| 亚洲欧美国产一本综合首页| 国产精品成人aaaaa网站| 国产精品久久久久久久久久东京| 亚洲国产精品va在线看黑人动漫| 久久91精品国产91久久跳| 一区二区三区美女xx视频| 日本一区二区三区四区视频| 国产一区深夜福利| 亚洲欧美另类自拍| 国内久久久精品| 亚洲欧美国产精品久久久久久久| 91日本在线视频| 97精品久久久中文字幕免费| 国产精品偷伦视频免费观看国产| 国产精品一久久香蕉国产线看观看| 国产99视频在线观看| 国产日韩换脸av一区在线观看| 国产亚洲人成a一在线v站| 欧美日韩国产成人在线| 91精品国产色综合久久不卡98| 日韩免费观看高清| 亚洲日本中文字幕| 免费97视频在线精品国自产拍| 国产成人拍精品视频午夜网站| 国产欧美中文字幕| 精品亚洲男同gayvideo网站|