Medical/obj/Release/Package/PackageTmp/Admin/Js/control/js/zyUpload.js

(开头部分) 39KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。


(function ($) {
    $.Jcrop = function (obj, opt) {
        var obj = obj, opt = opt; if (typeof (obj) !== "object") { obj = $(obj)[0] } if (typeof (opt) !== "object") { opt = {} } if (!("trackDocument" in opt)) { opt.trackDocument = $.browser.msie ? false : true; if ($.browser.msie && $.browser.version.split(".")[0] == "8") { opt.trackDocument = true } } if (!("keySupport" in opt)) { opt.keySupport = $.browser.msie ? false : true } var defaults = { trackDocument: false, baseClass: "jcrop", addClass: null, bgColor: "black", bgOpacity: 0.6, borderOpacity: 0.4, handleOpacity: 0.5, handlePad: 5, handleSize: 9, handleOffset: 5, edgeMargin: 14, aspectRatio: 0, keySupport: true, cornerHandles: true, sideHandles: true, drawBorders: true, dragEdges: true, boxWidth: 0, boxHeight: 0, boundary: 8, animationDelay: 20, swingSpeed: 3, allowSelect: true, allowMove: true, allowResize: true, minSelect: [0, 0], maxSize: [0, 0], minSize: [0, 0], onChange: function () { }, onSelect: function () { } }; var options = defaults; setOptions(opt); var $origimg = $(obj); var $img = $origimg.clone().removeAttr("id").css({ position: "absolute" }); $img.width($origimg.width()); $img.height($origimg.height()); $origimg.after($img).hide(); presize($img, options.boxWidth, options.boxHeight); var boundx = $img.width(), boundy = $img.height(), $div = $("<div />").width(boundx).height(boundy).addClass(cssClass("holder")).css({ position: "relative", backgroundColor: options.bgColor }).insertAfter($origimg).append($img); if (options.addClass) { $div.addClass(options.addClass) } var $img2 = $("<img />").attr("src", $img.attr("src")).css("position", "absolute").width(boundx).height(boundy); var $img_holder = $("<div />").width(pct(100)).height(pct(100)).css({ zIndex: 310, position: "absolute", overflow: "hidden" }).append($img2); var $hdl_holder = $("<div />").width(pct(100)).height(pct(100)).css("zIndex", 320); var $sel = $("<div />").css({ position: "absolute", zIndex: 300 }).insertBefore($img).append($img_holder, $hdl_holder); var bound = options.boundary; var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({ position: "absolute", top: px(-bound), left: px(-bound), zIndex: 290 }).mousedown(newSelection); var xlimit, ylimit, xmin, ymin;
        var xscale, yscale, enabled = true; var docOffset = getPos($img), btndown, lastcurs, dimmed, animating, shift_down; var Coords = function () {
            var x1 = 0, y1 = 0, x2 = 0, y2 = 0, ox, oy; function setPressed(pos) { var pos = rebound(pos); x2 = x1 = pos[0]; y2 = y1 = pos[1] } function setCurrent(pos) { var pos = rebound(pos); ox = pos[0] - x2; oy = pos[1] - y2; x2 = pos[0]; y2 = pos[1] } function getOffset() { return [ox, oy] } function moveOffset(offset) { var ox = offset[0], oy = offset[1]; if (0 > x1 + ox) { ox -= ox + x1 } if (0 > y1 + oy) { oy -= oy + y1 } if (boundy < y2 + oy) { oy += boundy - (y2 + oy) } if (boundx < x2 + ox) { ox += boundx - (x2 + ox) } x1 += ox; x2 += ox; y1 += oy; y2 += oy } function getCorner(ord) { var c = getFixed(); switch (ord) { case "ne": return [c.x2, c.y]; case "nw": return [c.x, c.y]; case "se": return [c.x2, c.y2]; case "sw": return [c.x, c.y2] } } function getFixed() { if (!options.aspectRatio) { return getRect() } var aspect = options.aspectRatio, min_x = options.minSize[0] / xscale, min_y = options.minSize[1] / yscale, max_x = options.maxSize[0] / xscale, max_y = options.maxSize[1] / yscale, rw = x2 - x1, rh = y2 - y1, rwa = Math.abs(rw), rha = Math.abs(rh), real_ratio = rwa / rha, xx, yy; if (max_x == 0) { max_x = boundx * 10 } if (max_y == 0) { max_y = boundy * 10 } if (real_ratio < aspect) { yy = y2; w = rha * aspect; xx = rw < 0 ? x1 - w : w + x1; if (xx < 0) { xx = 0; h = Math.abs((xx - x1) / aspect); yy = rh < 0 ? y1 - h : h + y1 } else { if (xx > boundx) { xx = boundx; h = Math.abs((xx - x1) / aspect); yy = rh < 0 ? y1 - h : h + y1 } } } else { xx = x2; h = rwa / aspect; yy = rh < 0 ? y1 - h : y1 + h; if (yy < 0) { yy = 0; w = Math.abs((yy - y1) * aspect); xx = rw < 0 ? x1 - w : w + x1 } else { if (yy > boundy) { yy = boundy; w = Math.abs(yy - y1) * aspect; xx = rw < 0 ? x1 - w : w + x1 } } } if (xx > x1) { if (xx - x1 < min_x) { xx = x1 + min_x } else { if (xx - x1 > max_x) { xx = x1 + max_x } } if (yy > y1) { yy = y1 + (xx - x1) / aspect } else { yy = y1 - (xx - x1) / aspect } } else { if (xx < x1) { if (x1 - xx < min_x) { xx = x1 - min_x } else { if (x1 - xx > max_x) { xx = x1 - max_x } } if (yy > y1) { yy = y1 + (x1 - xx) / aspect } else { yy = y1 - (x1 - xx) / aspect } } } if (xx < 0) { x1 -= xx; xx = 0 } else { if (xx > boundx) { x1 -= xx - boundx; xx = boundx } } if (yy < 0) { y1 -= yy; yy = 0 } else { if (yy > boundy) { y1 -= yy - boundy; yy = boundy } } return last = makeObj(flipCoords(x1, y1, xx, yy)) } function rebound(p) {
                if (p[0] < 0) { p[0] = 0 } if (p[1] < 0) { p[1] = 0 } if (p[0] > boundx) { p[0] = boundx } if (p[1] > boundy) { p[1] = boundy } return [p[0], p[1]]
            } function flipCoords(x1, y1, x2, y2) { var xa = x1, xb = x2, ya = y1, yb = y2; if (x2 < x1) { xa = x2; xb = x1 } if (y2 < y1) { ya = y2; yb = y1 } return [Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb)] } function getRect() { var xsize = x2 - x1; var ysize = y2 - y1; if (xlimit && (Math.abs(xsize) > xlimit)) { x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit) } if (ylimit && (Math.abs(ysize) > ylimit)) { y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit) } if (ymin && (Math.abs(ysize) < ymin)) { y2 = (ysize > 0) ? (y1 + ymin) : (y1 - ymin) } if (xmin && (Math.abs(xsize) < xmin)) { x2 = (xsize > 0) ? (x1 + xmin) : (x1 - xmin) } if (x1 < 0) { x2 -= x1; x1 -= x1 } if (y1 < 0) { y2 -= y1; y1 -= y1 } if (x2 < 0) { x1 -= x2; x2 -= x2 } if (y2 < 0) { y1 -= y2; y2 -= y2 } if (x2 > boundx) { var delta = x2 - boundx; x1 -= delta; x2 -= delta } if (y2 > boundy) { var delta = y2 - boundy; y1 -= delta; y2 -= delta } if (x1 > boundx) { var delta = x1 - boundy; y2 -= delta; y1 -= delta } if (y1 > boundy) { var delta = y1 - boundy; y2 -= delta; y1 -= delta } return makeObj(flipCoords(x1, y1, x2, y2)) } function makeObj(a) { return { x: a[0], y: a[1], x2: a[2], y2: a[3], w: a[2] - a[0], h: a[3] - a[1] } } return { flipCoords: flipCoords, setPressed: setPressed, setCurrent: setCurrent, getOffset: getOffset, moveOffset: moveOffset, getCorner: getCorner, getFixed: getFixed }
        }(); var Selection = function () {
            var start, end, dragmode, awake, hdep = 370; var borders = {}; var handle = {}; var seehandles = false; var hhs = options.handleOffset; if (options.drawBorders) { borders = { top: insertBorder("hline").css("top", $.browser.msie ? px(-1) : px(0)), bottom: insertBorder("hline"), left: insertBorder("vline"), right: insertBorder("vline") } } if (options.dragEdges) { handle.t = insertDragbar("n"); handle.b = insertDragbar("s"); handle.r = insertDragbar("e"); handle.l = insertDragbar("w") } options.sideHandles && createHandles(["n", "s", "e", "w"]); options.cornerHandles && createHandles(["sw", "nw", "ne", "se"]); function insertBorder(type) { var jq = $("<div />").css({ position: "absolute", opacity: options.borderOpacity }).addClass(cssClass(type)); $img_holder.append(jq); return jq } function dragDiv(ord, zi) { var jq = $("<div />").mousedown(createDragger(ord)).css({ cursor: ord + "-resize", position: "absolute", zIndex: zi }); $hdl_holder.append(jq); return jq } function insertHandle(ord) {
                return dragDiv(ord, hdep++).css({ top: px(-hhs + 1), left: px(-hhs + 1), opacity: options.handleOpacity }).addClass(cssClass("handle"))
            } function insertDragbar(ord) { var s = options.handleSize, o = hhs, h = s, w = s, t = o, l = o; switch (ord) { case "n": case "s": w = pct(100); break; case "e": case "w": h = pct(100); break } return dragDiv(ord, hdep++).width(w).height(h).css({ top: px(-t + 1), left: px(-l + 1) }) } function createHandles(li) { for (i in li) { handle[li[i]] = insertHandle(li[i]) } } function moveHandles(c) { var midvert = Math.round((c.h / 2) - hhs), midhoriz = Math.round((c.w / 2) - hhs), north = west = -hhs + 1, east = c.w - hhs, south = c.h - hhs, x, y; "e" in handle && handle.e.css({ top: px(midvert), left: px(east) }) && handle.w.css({ top: px(midvert) }) && handle.s.css({ top: px(south), left: px(midhoriz) }) && handle.n.css({ left: px(midhoriz) }); "ne" in handle && handle.ne.css({ left: px(east) }) && handle.se.css({ top: px(south), left: px(east) }) && handle.sw.css({ top: px(south) }); "b" in handle && handle.b.css({ top: px(south) }) && handle.r.css({ left: px(east) }) } function moveto(x, y) { $img2.css({ top: px(-y), left: px(-x) }); $sel.css({ top: px(y), left: px(x) }) } function resize(w, h) { $sel.width(w).height(h) } function refresh() { var c = Coords.getFixed(); Coords.setPressed([c.x, c.y]); Coords.setCurrent([c.x2, c.y2]); updateVisible() } function updateVisible() { if (awake) { return update() } } function update() { var c = Coords.getFixed(); resize(c.w, c.h); moveto(c.x, c.y); options.drawBorders && borders["right"].css({ left: px(c.w - 1) }) && borders["bottom"].css({ top: px(c.h - 1) }); seehandles && moveHandles(c); awake || show(); options.onChange(unscale(c)) } function show() { $sel.show(); $img.css("opacity", options.bgOpacity); awake = true } function release() { disableHandles(); $sel.hide(); $img.css("opacity", 1); awake = false } function showHandles() { if (seehandles) { moveHandles(Coords.getFixed()); $hdl_holder.show() } } function enableHandles() { seehandles = true; if (options.allowResize) { moveHandles(Coords.getFixed()); $hdl_holder.show(); return true } } function disableHandles() { seehandles = false; $hdl_holder.hide() } function animMode(v) { (animating = v) ? disableHandles() : enableHandles() } function done() { animMode(false); refresh() } var $track = newTracker().mousedown(createDragger("move")).css({ cursor: "move", position: "absolute", zIndex: 360 });
            $img_holder.append($track); disableHandles(); return { updateVisible: updateVisible, update: update, release: release, refresh: refresh, setCursor: function (cursor) { $track.css("cursor", cursor) }, enableHandles: enableHandles, enableOnly: function () { seehandles = true }, showHandles: showHandles, disableHandles: disableHandles, animMode: animMode, done: done }
        }(); var Tracker = function () { var onMove = function () { }, onDone = function () { }, trackDoc = options.trackDocument; if (!trackDoc) { $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp) } function toFront() { $trk.css({ zIndex: 450 }); if (trackDoc) { $(document).mousemove(trackMove).mouseup(trackUp) } } function toBack() { $trk.css({ zIndex: 290 }); if (trackDoc) { $(document).unbind("mousemove", trackMove).unbind("mouseup", trackUp) } } function trackMove(e) { onMove(mouseAbs(e)) } function trackUp(e) { e.preventDefault(); e.stopPropagation(); if (btndown) { btndown = false; onDone(mouseAbs(e)); options.onSelect(unscale(Coords.getFixed())); toBack(); onMove = function () { }; onDone = function () { } } return false } function activateHandlers(move, done) { btndown = true; onMove = move; onDone = done; toFront(); return false } function setCursor(t) { $trk.css("cursor", t) } $img.before($trk); return { activateHandlers: activateHandlers, setCursor: setCursor } }(); var KeyManager = function () {
            var $keymgr = $('<input type="radio" />').css({ position: "absolute", left: "-30px" }).keypress(parseKey).blur(onBlur), $keywrap = $("<div />").css({ position: "absolute", overflow: "hidden" }).append($keymgr); function watchKeys() { if (options.keySupport) { $keymgr.show(); $keymgr.focus() } } function onBlur(e) { $keymgr.hide() } function doNudge(e, x, y) { if (options.allowMove) { Coords.moveOffset([x, y]); Selection.updateVisible() } e.preventDefault(); e.stopPropagation() } function parseKey(e) {
                if (e.ctrlKey) { return true } shift_down = e.shiftKey ? true : false; var nudge = shift_down ? 10 : 1; switch (e.keyCode) { case 37: doNudge(e, -nudge, 0); break; case 39: doNudge(e, nudge, 0); break; case 38: doNudge(e, 0, -nudge); break; case 40: doNudge(e, 0, nudge); break; case 27: Selection.release(); break; case 9: return true } return nothing(e)
            } if (options.keySupport) { $keywrap.insertBefore($img) } return { watchKeys: watchKeys }
        }(); function px(n) { return "" + parseInt(n) + "px" } function pct(n) { return "" + parseInt(n) + "%" } function cssClass(cl) { return options.baseClass + "-" + cl } function getPos(obj) { var pos = $(obj).offset(); return [pos.left, pos.top] } function mouseAbs(e) { return [(e.pageX - docOffset[0]), (e.pageY - docOffset[1])] } function myCursor(type) { if (type != lastcurs) { Tracker.setCursor(type); lastcurs = type } } function startDragMode(mode, pos) { docOffset = getPos($img); Tracker.setCursor(mode == "move" ? mode : mode + "-resize"); if (mode == "move") { return Tracker.activateHandlers(createMover(pos), doneSelect) } var fc = Coords.getFixed(); var opp = oppLockCorner(mode); var opc = Coords.getCorner(oppLockCorner(opp)); Coords.setPressed(Coords.getCorner(opp)); Coords.setCurrent(opc); Tracker.activateHandlers(dragmodeHandler(mode, fc), doneSelect) } function dragmodeHandler(mode, f) { return function (pos) { if (!options.aspectRatio) { switch (mode) { case "e": pos[1] = f.y2; break; case "w": pos[1] = f.y2; break; case "n": pos[0] = f.x2; break; case "s": pos[0] = f.x2; break } } else { switch (mode) { case "e": pos[1] = f.y + 1; break; case "w": pos[1] = f.y + 1; break; case "n": pos[0] = f.x + 1; break; case "s": pos[0] = f.x + 1; break } } Coords.setCurrent(pos); Selection.update() } } function createMover(pos) { var lloc = pos; KeyManager.watchKeys(); return function (pos) { Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]); lloc = pos; Selection.update() } } function oppLockCorner(ord) { switch (ord) { case "n": return "sw"; case "s": return "nw"; case "e": return "nw"; case "w": return "ne"; case "ne": return "sw"; case "nw": return "se"; case "se": return "nw"; case "sw": return "ne" } } function createDragger(ord) { return function (e) { if (options.disabled) { return false } if ((ord == "move") && !options.allowMove) { return false } btndown = true; startDragMode(ord, mouseAbs(e)); e.stopPropagation(); e.preventDefault(); return false } } function presize($obj, w, h) {
            var nw = $obj.width(), nh = $obj.height(); if ((nw > w) && w > 0) { nw = w; nh = (w / $obj.width()) * $obj.height() } if ((nh > h) && h > 0) { nh = h; nw = (h / $obj.height()) * $obj.width() } xscale = $obj.width() / nw;
            yscale = $obj.height() / nh; $obj.width(nw).height(nh)
        } function unscale(c) { return { x: parseInt(c.x * xscale), y: parseInt(c.y * yscale), x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale), w: parseInt(c.w * xscale), h: parseInt(c.h * yscale) } } function doneSelect(pos) { var c = Coords.getFixed(); if (c.w > options.minSelect[0] && c.h > options.minSelect[1]) { Selection.enableHandles(); Selection.done() } else { Selection.release() } Tracker.setCursor(options.allowSelect ? "crosshair" : "default") } function newSelection(e) { if (options.disabled) { return false } if (!options.allowSelect) { return false } btndown = true; docOffset = getPos($img); Selection.disableHandles(); myCursor("crosshair"); var pos = mouseAbs(e); Coords.setPressed(pos); Tracker.activateHandlers(selectDrag, doneSelect); KeyManager.watchKeys(); Selection.update(); e.stopPropagation(); e.preventDefault(); return false } function selectDrag(pos) { Coords.setCurrent(pos); Selection.update() } function newTracker() { var trk = $("<div></div>").addClass(cssClass("tracker")); $.browser.msie && trk.css({ opacity: 0, backgroundColor: "white" }); return trk } function animateTo(a) { var x1 = a[0] / xscale, y1 = a[1] / yscale, x2 = a[2] / xscale, y2 = a[3] / yscale; if (animating) { return } var animto = Coords.flipCoords(x1, y1, x2, y2); var c = Coords.getFixed(); var animat = initcr = [c.x, c.y, c.x2, c.y2]; var interv = options.animationDelay; var x = animat[0]; var y = animat[1]; var x2 = animat[2]; var y2 = animat[3]; var ix1 = animto[0] - initcr[0]; var iy1 = animto[1] - initcr[1]; var ix2 = animto[2] - initcr[2]; var iy2 = animto[3] - initcr[3]; var pcent = 0; var velocity = options.swingSpeed; Selection.animMode(true); var animator = function () { return function () { pcent += (100 - pcent) / velocity; animat[0] = x + ((pcent / 100) * ix1); animat[1] = y + ((pcent / 100) * iy1); animat[2] = x2 + ((pcent / 100) * ix2); animat[3] = y2 + ((pcent / 100) * iy2); if (pcent < 100) { animateStart() } else { Selection.done() } if (pcent >= 99.8) { pcent = 100 } setSelectRaw(animat) } }(); function animateStart() { window.setTimeout(animator, interv) } animateStart() } function setSelect(rect) { setSelectRaw([rect[0] / xscale, rect[1] / yscale, rect[2] / xscale, rect[3] / yscale]) } function setSelectRaw(l) {
            Coords.setPressed([l[0], l[1]]);
            Coords.setCurrent([l[2], l[3]]); Selection.update()
        } function setOptions(opt) { if (typeof (opt) != "object") { opt = {} } options = $.extend(options, opt); if (typeof (options.onChange) !== "function") { options.onChange = function () { } } if (typeof (options.onSelect) !== "function") { options.onSelect = function () { } } } function tellSelect() { return unscale(Coords.getFixed()) } function tellScaled() { return Coords.getFixed() } function setOptionsNew(opt) { setOptions(opt); interfaceUpdate() } function disableCrop() { options.disabled = true; Selection.disableHandles(); Selection.setCursor("default"); Tracker.setCursor("default") } function enableCrop() { options.disabled = false; interfaceUpdate() } function cancelCrop() { Selection.done(); Tracker.activateHandlers(null, null) } function destroy() { $div.remove(); $origimg.show() } function interfaceUpdate(alt) { options.allowResize ? alt ? Selection.enableOnly() : Selection.enableHandles() : Selection.disableHandles(); Tracker.setCursor(options.allowSelect ? "crosshair" : "default"); Selection.setCursor(options.allowMove ? "move" : "default"); $div.css("backgroundColor", options.bgColor); if ("setSelect" in options) { setSelect(opt.setSelect); Selection.done(); delete (options.setSelect) } if ("trueSize" in options) { xscale = options.trueSize[0] / boundx; yscale = options.trueSize[1] / boundy } xlimit = options.maxSize[0] || 0; ylimit = options.maxSize[1] || 0; xmin = options.minSize[0] || 0; ymin = options.minSize[1] || 0; if ("outerImage" in options) { $img.attr("src", options.outerImage); delete (options.outerImage) } Selection.refresh() } $hdl_holder.hide(); interfaceUpdate(true); var api = { animateTo: animateTo, setSelect: setSelect, setOptions: setOptionsNew, tellSelect: tellSelect, tellScaled: tellScaled, disable: disableCrop, enable: enableCrop, cancel: cancelCrop, focus: KeyManager.watchKeys, getBounds: function () { return [boundx * xscale, boundy * yscale] }, getWidgetSize: function () { return [boundx, boundy] }, release: Selection.release, destroy: destroy }; $origimg.data("Jcrop", api); return api
    }; $.fn.Jcrop = function (options) {
        function attachWhenDone(from) {
            var loadsrc = options.useImg || from.src; var img = new Image();
            img.onload = function () { $.Jcrop(from, options) }; img.src = loadsrc
        } if (typeof (options) !== "object") { options = {} } this.each(function () { if ($(this).data("Jcrop")) { if (options == "api") { return $(this).data("Jcrop") } else { $(this).data("Jcrop").setOptions(options) } } else { attachWhenDone(this) } }); return this
    }
})(jQuery); (function ($, undefined) {
    $.fn.zyPopup = function (options, param) {
        var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options == "string") { var fn = this[0][options]; if ($.isFunction(fn)) { return fn.apply(this, otherArgs) } else { throw ("zyPopup - No such method: " + options) } } return this.each(function () {
            var para = {}; var self = this; var zoom = "", zoomContent = "", zoomedIn = false, openedImage = null, windowWidth = "", windowHeight = ""; var tailorVal = {}; var defaults = { src: "", index: 0, name: "", onTailor: function (val) { } }; para = $.extend(defaults, options); this.init = function () { this.createHtml(); this.openPopup(); this.bindPopupEvent() }; this.createHtml = function () { $("#zoom").remove(); $("body").append('<div id="zoom"><a class="finish"></a><a class="close"></a><div class="content loading"></div></div>'); zoom = $("#zoom").hide(), zoomContent = $("#zoom .content"), zoomedIn = false, openedImage = null, windowWidth = $(window).width(), windowHeight = $(window).height() }; this.openPopup = function () {
                var self = this; var image = $(new Image()).attr("id", "tailorImg").hide(); $("#zoom .previous, #zoom .next").show(); if (!zoomedIn) { zoomedIn = true; zoom.show(); $("body").addClass("zoomed") } zoomContent.html(image).delay(500).addClass("loading"); image.load(render).attr("src", para.src); function render() {
                    var image = $(this), borderWidth = parseInt(zoomContent.css("borderLeftWidth")), maxImageWidth = windowWidth - (borderWidth * 2), maxImageHeight = windowHeight - (borderWidth * 2), imageWidth = image.width(), imageHeight = image.height(); if (imageWidth == zoomContent.width() && imageWidth <= maxImageWidth && imageHeight == zoomContent.height() && imageHeight <= maxImageHeight) { show(image); return } zoomContent.animate({ width: image.width(), height: image.height(), marginTop: -(image.height() / 2) - borderWidth, marginLeft: -(image.width() / 2) - borderWidth }, 200, function () {
                        show(image)
                    }); function show(image) { image.show(); zoomContent.removeClass("loading"); self.createTailorPlug() }
                }
            }; this.createTailorPlug = function () { var width = $("#tailorImg").width(); var height = $("#tailorImg").height(); var x1 = (width / 2) - (width / 5); var y1 = (height / 2) - (height / 5); var x2 = (width / 2) + (width / 5); var y2 = (height / 2) + (height / 5); var api = $.Jcrop("#tailorImg", { setSelect: [x1, y1, x2, y2], onChange: setCoords, onSelect: setCoords }); function setCoords(obj) { tailorVal = { "leftX": obj.x, "leftY": obj.y, "rightX": obj.x2, "rightY": obj.y2, "width": obj.w, "height": obj.h } } }; this.bindPopupEvent = function () { var self = this; zoom.bind("click", function (event) { event.preventDefault(); if ($(event.target).attr("id") == "zoom") { self.closePopup(event) } }); $("#zoom .finish").bind("click", function (event) { var quondamImgInfo = new Object(); quondamImgInfo["width"] = $(".jcrop-holder>div>div>img").width(); quondamImgInfo["height"] = $(".jcrop-holder>div>div>img").height(); para.onTailor(tailorVal, quondamImgInfo); self.closePopup(event) }); $("#zoom .close").bind("click", function (event) { self.closePopup(event) }) }; this.closePopup = function (event) { if (event) { event.preventDefault() } zoomedIn = false; openedImage = null; zoom.hide(); $("body").removeClass("zoomed"); zoomContent.empty() }; this.init()
        })
    }
})(jQuery); var ZYFILE = {
    fileInput: null, uploadInput: null, dragDrop: null, url: "", uploadFile: [], lastUploadFile: [], perUploadFile: [], fileNum: 0, filterFile: function (files) { return files }, onSelect: function (selectFile, files) { }, onDelete: function (file, files) { }, onProgress: function (file, loaded, total) { }, onSuccess: function (file, responseInfo) { }, onFailure: function (file, responseInfo) { }, onComplete: function (responseInfo) { }, funDragHover: function (e) { e.stopPropagation(); e.preventDefault(); this[e.type === "dragover" ? "onDragOver" : "onDragLeave"].call(e.target); return this }, funGetFiles: function (e) {
        var self = this; this.funDragHover(e); var files = e.target.files || e.dataTransfer.files; self.lastUploadFile = this.uploadFile; this.uploadFile = this.uploadFile.concat(this.filterFile(files)); var tmpFiles = []; var lArr = [];
        var uArr = []; $.each(self.lastUploadFile, function (k, v) { lArr.push(v.name) }); $.each(self.uploadFile, function (k, v) { uArr.push(v.name) }); $.each(uArr, function (k, v) { if ($.inArray(v, lArr) < 0) { tmpFiles.push(self.uploadFile[k]) } }); this.uploadFile = tmpFiles; this.funDealtFiles(); return true
    }, funDealtFiles: function () { var self = this; $.each(this.uploadFile, function (k, v) { v.index = self.fileNum; self.fileNum++ }); var selectFile = this.uploadFile; this.perUploadFile = this.perUploadFile.concat(this.uploadFile); this.uploadFile = this.lastUploadFile.concat(this.uploadFile); this.onSelect(selectFile, this.uploadFile); console.info("继续选择"); console.info(this.uploadFile); return this }, funDeleteFile: function (delFileIndex, isCb) { var self = this; var tmpFile = []; var delFile = this.perUploadFile[delFileIndex]; $.each(this.uploadFile, function (k, v) { if (delFile != v) { tmpFile.push(v) } }); this.uploadFile = tmpFile; if (isCb) { self.onDelete(delFile, this.uploadFile) } console.info("还剩这些文件没有上传:"); console.info(this.uploadFile); return true }, funUploadFiles: function () { var self = this; $.each(this.uploadFile, function (k, v) { self.funUploadFile(v) }) }, funUploadFile: function (file) { var self = this; var formdata = new FormData(); formdata.append("file", file); if ($("#uploadTailor_" + file.index).length > 0) { formdata.append("tailor", $("#uploadTailor_" + file.index).attr("tailor")) } var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function (e) { self.onProgress(file, e.loaded, e.total) }, false); xhr.addEventListener("load", function (e) { self.funDeleteFile(file.index, false); self.onSuccess(file, xhr.responseText); if (self.uploadFile.length == 0) { self.onComplete("全部完成") } }, false); xhr.addEventListener("error", function (e) { self.onFailure(file, xhr.responseText) }, false); xhr.open("POST", self.url, true); xhr.send(formdata) }, funReturnNeedFiles: function () { return this.uploadFile }, init: function () {
        var self = this; if (this.dragDrop) {
            this.dragDrop.addEventListener("dragover", function (e) { self.funDragHover(e) }, false); this.dragDrop.addEventListener("dragleave", function (e) { self.funDragHover(e) }, false);
            this.dragDrop.addEventListener("drop", function (e) { self.funGetFiles(e) }, false)
        } if (self.fileInput) { this.fileInput.addEventListener("change", function (e) { self.funGetFiles(e) }, false) } if (self.uploadInput) { this.uploadInput.addEventListener("click", function (e) { self.funUploadFiles(e) }, false) }
    }
}; (function ($, undefined) {
    $.fn.zyUpload = function (options, param) {
        var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options == "string") { var fn = this[0][options]; if ($.isFunction(fn)) { return fn.apply(this, otherArgs) } else { throw ("zyUpload - No such method: " + options) } } return this.each(function () {
            var para = {}; var self = this; var defaults = { width: "700px", height: "400px", itemWidth: "140px", itemHeight: "120px", url: "/upload/UploadAction", fileType: [], fileSize: 51200000, multiple: true, dragDrop: true, tailor: false, del: true, finishDel: false, onSelect: function (selectFiles, allFiles) { }, onDelete: function (file, files) { }, onSuccess: function (file, response) { }, onFailure: function (file, response) { }, onComplete: function (response) { } }; para = $.extend(defaults, options); this.init = function () { this.createHtml(); this.createCorePlug() }; this.createHtml = function () {
                var multiple = ""; para.multiple ? multiple = "multiple" : multiple = ""; var html = ""; if (para.dragDrop) {
                    html += '<form id="uploadForm" action="' + para.url + '" method="post" enctype="multipart/form-data">'; html += '	<div class="upload_box">'; html += '		<div class="upload_main">'; html += '			<div class="upload_choose">'; html += '				<div class="convent_choice">'; html += '					<div class="andArea">'; html += '						<div class="filePicker">点击选择文件</div>'; html += '						<input id="fileImage" type="file" size="30" name="fileselect[]" ' + multiple + ">"; html += "					</div>"; html += "				</div>"; html += '				<span id="fileDragArea" class="upload_drag_area">或者将文件拖到此处</span>'; html += "			</div>"; html += '			<div class="status_bar">'; html += '				<div id="status_info" class="info">选中0张文件,共0B。</div>'; html += '				<div class="btns">'; html += '					<div class="webuploader_pick">继续选择</div>'; html += '					<div class="upload_btn">开始上传</div>';
                    html += "				</div>"; html += "			</div>"; html += '			<div id="preview" class="upload_preview"></div>'; html += "		</div>"; html += '		<div class="upload_submit">'; html += '			<button type="button" id="fileSubmit" class="upload_submit_btn">确认上传文件</button>'; html += "		</div>"; html += '		<div id="uploadInf" class="upload_inf"></div>'; html += "	</div>"; html += "</form>"
                } else { var imgWidth = parseInt(para.itemWidth.replace("px", "")) - 15; html += '<form id="uploadForm" action="' + para.url + '" method="post" enctype="multipart/form-data">'; html += '	<div class="upload_box">'; html += '		<div class="upload_main single_main">'; html += '			<div class="status_bar">'; html += '				<div id="status_info" class="info">选中0张文件,共0B。</div>'; html += '				<div class="btns">'; html += '					<input id="fileImage" type="file" size="30" name="fileselect[]" ' + multiple + ">"; html += '					<div class="webuploader_pick">选择文件</div>'; html += '					<div class="upload_btn">开始上传</div>'; html += "				</div>"; html += "			</div>"; html += '			<div id="preview" class="upload_preview">'; html += '				<div class="add_upload">'; html += '					<a style="height:' + para.itemHeight + ";width:" + para.itemWidth + ';" title="点击添加文件" id="rapidAddImg" class="add_imgBox" href="javascript:void(0)">'; html += '						<div class="uploadImg" style="width:' + imgWidth + 'px">'; html += '							<img class="upload_image" src="zyupload/skins/images/add_img.png" style="width:expression(this.width > ' + imgWidth + " ? " + imgWidth + 'px : this.width)" />'; html += "						</div>"; html += "					</a>"; html += "				</div>"; html += "			</div>"; html += "		</div>"; html += '		<div class="upload_submit">'; html += '			<button type="button" id="fileSubmit" class="upload_submit_btn">确认上传文件</button>'; html += "		</div>"; html += '		<div id="uploadInf" class="upload_inf"></div>'; html += "	</div>"; html += "</form>" } $(self).append(html).css({ "width": para.width, "height": para.height }); this.addEvent()
后面还有 27 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。