麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曰本三级日本三级日本三级 | 婷婷亚洲一区二区三区 | 久久久久九九九女人毛片 | 福利免费在线 | 国产亚洲精品久久久久久网站 | 91久久国产露脸精品国产护士 | 久久久久久艹 | 一区二区三区黄色 | 亚洲精品 在线播放 | 久久成人亚洲 | 亚洲午夜久久久精品一区二区三区 | 91九色国产视频 | 国产成人精品免费视频大全最热 | 亚洲天堂在线电影 | 欧日一级片 | 欧美日韩在线中文 | 国产毛片在线高清视频 | 久久国产一级片 | 久久国产一 | av在线免费看网址 | 久久艹艹艹| 天天都色视频 | 中文字幕专区高清在线观看 | 日本网站一区二区三区 | 成人激情在线 | 日本aaa一级片 | 草莓视频在线导航 | 精品国产91久久久久久 | 成年人在线视频免费 | 成人羞羞在线观看网站 | 欧美一区二区三区不卡免费观看 | 欧美日韩成人一区二区 | 一级做a爱片久久 | 久草中文网| h视频免费看 | 黄色久| 一区二区三区小视频 | 宅男噜噜噜66国产免费观看 | 龙的两根好大拔不出去h | 香蕉久久久 | 国产精品久久久久久久久久 |