From f28b26de7ee31d17594fa381ba09711f216061a9 Mon Sep 17 00:00:00 2001 From: schnellreich Date: Wed, 7 Feb 2024 12:00:44 +0800 Subject: [PATCH] nav --- _includes/footer.html | 56 +- _includes/head.html | 3 +- _includes/header.html | 19 +- _layouts/home.html | 17 +- _site/about/design.md | 9 + _site/assets/css/mobile.css | 170 + _site/assets/css/styles.css | 297 +- _site/assets/font/Restora.otf | Bin 0 -> 156404 bytes _site/assets/font/RestoraBold.otf | Bin 0 -> 158052 bytes _site/assets/fonts/Gemsbuck01Black.woff | Bin 3828 -> 0 bytes .../{Rare_logo.svg => common/rare_logo.svg} | 0 .../img/common/rare_logo_black_full.svg | 73 + _site/assets/js/glitch/glitch-cxecute.js | 89 - _site/assets/js/glitch/glitch-lib.js | 391 --- _site/assets/js/glitch/html2canvas.js | 2791 ----------------- _site/assets/js/hamburger.js | 5 + _site/feed.xml | 2 +- _site/index.html | 95 +- about/design.md | 9 + assets/css/mobile.css | 170 + assets/css/styles.css | 297 +- assets/font/Restora.otf | Bin 0 -> 156404 bytes assets/font/RestoraBold.otf | Bin 0 -> 158052 bytes assets/fonts/Gemsbuck01Black.woff | Bin 3828 -> 0 bytes .../{Rare_logo.svg => common/rare_logo.svg} | 0 assets/img/common/rare_logo_black_full.svg | 73 + assets/js/glitch/glitch-cxecute.js | 89 - assets/js/glitch/glitch-lib.js | 391 --- assets/js/glitch/html2canvas.js | 2791 ----------------- assets/js/hamburger.js | 5 + 30 files changed, 981 insertions(+), 6861 deletions(-) create mode 100644 _site/about/design.md create mode 100644 _site/assets/css/mobile.css create mode 100644 _site/assets/font/Restora.otf create mode 100644 _site/assets/font/RestoraBold.otf delete mode 100644 _site/assets/fonts/Gemsbuck01Black.woff rename _site/assets/img/{Rare_logo.svg => common/rare_logo.svg} (100%) create mode 100644 _site/assets/img/common/rare_logo_black_full.svg delete mode 100644 _site/assets/js/glitch/glitch-cxecute.js delete mode 100644 _site/assets/js/glitch/glitch-lib.js delete mode 100644 _site/assets/js/glitch/html2canvas.js create mode 100644 _site/assets/js/hamburger.js create mode 100644 about/design.md create mode 100644 assets/css/mobile.css create mode 100644 assets/font/Restora.otf create mode 100644 assets/font/RestoraBold.otf delete mode 100644 assets/fonts/Gemsbuck01Black.woff rename assets/img/{Rare_logo.svg => common/rare_logo.svg} (100%) create mode 100644 assets/img/common/rare_logo_black_full.svg delete mode 100644 assets/js/glitch/glitch-cxecute.js delete mode 100644 assets/js/glitch/glitch-lib.js delete mode 100644 assets/js/glitch/html2canvas.js create mode 100644 assets/js/hamburger.js diff --git a/_includes/footer.html b/_includes/footer.html index 24935f7..770e0f0 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,16 +1,53 @@ + \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html index ffbee3e..6fbd015 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -9,10 +9,11 @@ + - + diff --git a/_includes/header.html b/_includes/header.html index 3518df6..477f456 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -1,4 +1,19 @@
- - Book Demo + + +
Book Demo
\ No newline at end of file diff --git a/_layouts/home.html b/_layouts/home.html index 41b8e2f..69bc81b 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -4,16 +4,23 @@
-

Elegance in Software -
Expertise in Action

-

Where mastery in software engineering
- converges with transformative user experience

+

Elegant Exteriors,
Brutal Internal

+

+ Software that’s easy to use + and powerful under the hood, + perfectly blending design + with functionality +

+

+ Nice to meet you >> +

Simplicity in Every Solution

- Navigate the future of business with Rare Digits +

Navigate the future of business
+ with Rare Digits

diff --git a/_site/about/design.md b/_site/about/design.md new file mode 100644 index 0000000..7ab3030 --- /dev/null +++ b/_site/about/design.md @@ -0,0 +1,9 @@ +### Main Page Content for Rare Digits Production Website + +--- + +#### Headline: +"Elegant Exteriors, Brutal Internals" + + +Rare Digits Production stands at the intersection of aesthetic refinement and technical prowess. Our development philosophy is built on a fundamental understanding of our users, ensuring each application we create - from robust ERP and CRM systems to bespoke accounting and logistics forecasting tools - is both visually appealing and mercilessly effective. We specialize in blending elegant exteriors with brutal internals, crafting solutions that not only meet but exceed business needs. Welcome to a realm where software is designed to be as powerful on the inside as it is graceful on the outside. \ No newline at end of file diff --git a/_site/assets/css/mobile.css b/_site/assets/css/mobile.css new file mode 100644 index 0000000..03c2078 --- /dev/null +++ b/_site/assets/css/mobile.css @@ -0,0 +1,170 @@ +@media screen and (max-width: 768px) { + body { + font-size: 14px; + } + + header { + padding: 10px; + } + + .logo { + margin: 10px 5px; + } + + nav { + width: fit-content; + } + + .hamburger { + display: block; + padding-top: 11px; + height: 100%; + } + + nav ul { + position: fixed; + width: 100%; + height: 100vh; + top: 0; + left: -100%; + background-image: url(/assets/img/home-bg.jpg); + background-attachment: fixed; + background-size: cover; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + transition: left 0.3s; + z-index: 100; + } + + nav ul li { + margin: 10px 0; + width: 100%; + padding: 10px 0; + } + + nav ul li a { + font-size: 32px; + color: white; + border-bottom: none; + } + + nav ul li:hover, nav ul li:hover a, nav ul li a:hover{ + font-family: 'Restora'; + font-size: 32px; + background-color: #00ff4e; + color: #fff; + border: none; + } + + nav ul .close { + display: block; + font-size: 3.2em; + padding-left: 90%; + } + + header .button { + margin: auto 5px; + border-radius: 20px; + } + + section { + padding: 30px 10px; + margin: 5px auto; + } + + h1 { + font-size: 24px; + line-height: 25px; + } + + h2 { + line-height: 1em; + } + + .sectionFirst { + min-height: 62vh; + } + + .helloWorld { + width: 100%; + font-size: 14px; + line-height: 16px; + padding: 0 18px; + bottom: 10px; + } + + .solutionsText { + padding: 0; + font-size: 1em; + } + + .solutionAccount, .solutionIntergation, .solutionSales, .solutionLogistics, .solutionConsulting { + width: 100%; + margin: 0 0 10px 0; + } + + .oneApp, .Apps, .appStore { + min-height: fit-content; + height: fit-content; + } + + .oneAppWrapper { + flex-flow: column; + height: fit-content; + } + + .oneAppPhone { + width: 100%; + height: 700px; + background-position: center; + background-size:cover; + } + + .oneAppText { + width: 100%; + text-align: center; + padding: 30px 30px 0; + } + + .sleep { + display: none; + } + + .appStore { + flex-flow: row wrap; + } + + .app { + width: 48%; + } + + .demoRequest { + width: 100%; + } + + footer { + width: 100%; + flex-flow: column nowrap; + } + + .footerSence { + width: 100%; + flex-flow: row wrap; + } + + .footerSence div { + width: 50%; + margin-bottom: 25px; + } + + .copyright { + order: 5; + width: 100% !important; + } + + .contacts { + text-align: left; + } +} \ No newline at end of file diff --git a/_site/assets/css/styles.css b/_site/assets/css/styles.css index fdeb7c7..d4f2ea2 100644 --- a/_site/assets/css/styles.css +++ b/_site/assets/css/styles.css @@ -1,8 +1,3 @@ -@font-face { - font-family: 'Gemsbuck01Black'; - src: url('../fonts/Gemsbuck01Black.woff'); -} - * { -webkit-locale: auto; padding: 0; @@ -16,9 +11,9 @@ html, body { } body { - font-family: 'Bai Jamjuree', 'Ubuntu', sans-serif; - font-size: 18px; - line-height: 28px; + font-family: 'Courier Prime', monospace; + font-size: 15px; + line-height: 23px; font-weight: 400; -webkit-font-smoothing: antialiased; color: #fff; @@ -31,22 +26,47 @@ body { background-size: cover; } -a { - color: #fff; +@font-face { + font-family: 'Restora'; + src: url('/assets/font/Restora.otf') format('opentype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Restora'; + src: url('/assets/font/RestoraBold.otf') format('opentype'); + font-weight: bold; + font-style: normal; + font-display: swap; } h1, h2 { - font-family: 'Gemsbuck01Black'; + font-family: 'Restora', serif; + font-weight: bold; margin: 0; } +a { + color: #00ff4e; + text-decoration: none; + border-bottom: .5px solid #00ff4e; +} + +a:hover { + color: #fff; + font-weight: 900; +} + h1 { font-size: 36px; line-height: 38px; } -.code { - font-family: monospace; +h2 { + font-size: 32px; + line-height: 36px; } /* HEADER */ @@ -57,28 +77,103 @@ header { justify-content: space-between; background: #000; margin: 10px auto; - padding: 25px; + border-bottom: 4px solid #00ff4e; } .logo { - height: 26px; + height: 35px; + margin: 25px; } -.booking { - background-color: #fff; +nav { + height: 100%; + width: 50%; +} + +nav ul { + height: 100%; + display: flex; + flex-flow: row nowrap; + list-style: none; + margin: 0; + padding: 0; +} + +nav ul li { + margin: auto; + display: flex; + align-items: center; + justify-content: center; + margin: 0; + padding: 0 20px; + width: 20%; +} + +nav ul li a { + display: block; + font-size: 16px; + font-weight: 900; + text-align: center; + transition: background-color 0.3s ease; + color: #fff; + border-bottom: .5px solid #fff; +} + +nav ul li:hover, nav ul li:hover a, nav ul li a:hover{ + font-family: 'Restora'; + font-size: 15px; + background-color: #00ff4e; color: #000; - padding: 5px 15px; border: none; +} + +header .button { + margin: auto 25px; +} + +.hamburger { + display: none; + cursor: pointer; +} + +.hamburger div { + width: 30px; + height: 3px; + background-color: #fff; + margin: 6px 0; + transition: 0.4s; +} + +.hamburger:hover div { + background-color: #00ff4e; +} + +nav ul .close { + display: none; + position: absolute; + top: 0; + right: 0; + padding: 20px; + font-size: 30px; + color: white; + } + + +.button { + display: block; + padding: 6px 16px 3px; cursor: pointer; font-size: 16px; - font-weight: 900; - border-radius: 15px; text-decoration: none; + border: 2px solid #00ff4e; + border-radius: 2px; + height: fit-content; } -.booking:hover { - background-color: #666; - color: #fff; +.button:hover { + background-color: #00ff4e; + border: 1px solid #fff; + color: #000; } .booking:active { @@ -88,6 +183,10 @@ header { /* BODY */ +.bold { + font-weight: 900; +} + section { width: 95%; margin: 15px auto; @@ -97,6 +196,10 @@ section { text-align: center; } +section h1 { + margin-bottom: 30px; +} + section p { font-size: 1.2em; margin-top: 10px; @@ -112,10 +215,10 @@ section p { .helloWorld { position: absolute; - width: 60%; + width: 45%; text-align: right; right: 0; - bottom: 0; + bottom: 100px; padding: 20px 40px; } @@ -202,7 +305,6 @@ section p { } .solutionsText { - font-size: 1.2em; padding: 0 100px; } @@ -347,132 +449,43 @@ footer { background: #000000; margin: 10px auto; padding: 25px; + font-size: 14px; } -.slogan { - font-family: 'Gemsbuck01Black'; - font-size: 14px; - text-align: left; - text-transform: uppercase; +footer a { + color: #fff; + text-decoration: none; + border-bottom: .5px solid #fff; } -.contacts { - font-size: 14px; - line-height: 18px; +footer a:hover { + color: #00ff4e; + font-weight: 900; + border-bottom: .5px solid #00ff4e; } -.links { - text-align: right; - line-height: 18px; +.footerSence { + display: flex; + flex-flow: row nowrap; +} + +.copyright, .links { + padding-right: 50px; } .copyright { - font-size: 14px; - text-align: right; + width: 20%; } +.footerSence ul { + list-style: none; + padding: 0; + margin: 0; +} -/* CAROUSEL */ - - -/* MOBILE */ -@media (max-width: 900px) { - body { - font-size: 14px; - } - - header { - padding: 10px; - } - - .logo { - padding-top: 3px; - } - - .booking { - font-size: 15px; - padding: 2px 10px; - } - - section { - padding: 30px 10px; - margin: 5px auto; - } - - h1 { - font-size: 24px; - line-height: 25px; - } - - h2 { - line-height: 1em; - } - - .sectionFirst { - min-height: 62vh; - } - - .helloWorld { - width: 100%; - font-size: 14px; - line-height: 16px; - padding: 0 18px; - } - - .solutionsText { - padding: 0; - font-size: 1em; - } - - .solutionAccount, .solutionIntergation, .solutionSales, .solutionLogistics, .solutionConsulting { - width: 100%; - margin: 0 0 10px 0; - } - - .oneApp, .Apps, .appStore { - min-height: fit-content; - height: fit-content; - } - - .oneAppWrapper { - flex-flow: column; - height: fit-content; - } - - .oneAppPhone { - width: 100%; - height: 700px; - background-position: center; - background-size:cover; - } - - .oneAppText { - width: 100%; - text-align: center; - padding: 30px 30px 0; - } - - .sleep { - display: none; - } - - .appStore { - flex-flow: row wrap; - } - - .app { - width: 48%; - } - - .demoRequest { - width: 100%; - } - - footer { - width: 100%; - } - - .slogan { - display: none; - } + +.contacts { + font-size: 14px; + line-height: 18px; + text-align: right; } \ No newline at end of file diff --git a/_site/assets/font/Restora.otf b/_site/assets/font/Restora.otf new file mode 100644 index 0000000000000000000000000000000000000000..822447ddcf70f521506ea23b2a779496abe5bdba GIT binary patch literal 156404 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 literal 0 HcmV?d00001 diff --git a/_site/assets/font/RestoraBold.otf b/_site/assets/font/RestoraBold.otf new file mode 100644 index 0000000000000000000000000000000000000000..752ff01f208084001256e2a731b4761972f48fd7 GIT binary patch literal 158052 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 literal 0 HcmV?d00001 diff --git a/_site/assets/fonts/Gemsbuck01Black.woff b/_site/assets/fonts/Gemsbuck01Black.woff deleted file mode 100644 index 3ba11270b5ed71ccaa774f668c6887351e0a91a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3828 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 A1ONa4 diff --git a/_site/assets/img/Rare_logo.svg b/_site/assets/img/common/rare_logo.svg similarity index 100% rename from _site/assets/img/Rare_logo.svg rename to _site/assets/img/common/rare_logo.svg diff --git a/_site/assets/img/common/rare_logo_black_full.svg b/_site/assets/img/common/rare_logo_black_full.svg new file mode 100644 index 0000000..b5f2419 --- /dev/null +++ b/_site/assets/img/common/rare_logo_black_full.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_site/assets/js/glitch/glitch-cxecute.js b/_site/assets/js/glitch/glitch-cxecute.js deleted file mode 100644 index 3f6c78e..0000000 --- a/_site/assets/js/glitch/glitch-cxecute.js +++ /dev/null @@ -1,89 +0,0 @@ -//================================================================================================= GLITCH - -function getRandomInt (min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; -} - -glitch_exec = { - /* Global config settings */ - NR_OF_GLITCHED_CANVASES : 7, - GLITCH_RENDER_COUNT : 0, /* 0 or negative == glitch indefinitely ; > 0 == glich & few times and stop */ - GLITCH_INTERVAL_PROGRESSIVE : 1, - GLITCH_INTERVAL_MIN : 500, /* millisecs */ - GLITCH_INTERVAL_MAX : 1500, /* millisecs */ - DELAY_BETWEEN_FRAMES : 30, /* 30 milisecs delay */ - DELAY_BETWEEN_GLITCHES : 0, - GLITCH_REFRESH_FRAMES_INTERVAL : 1, /* refresh glitched frames after N glitches ; 0 disables this */ - - /* From here on, it's just internal stuff */ - - refresh_glitch_frames_counter : 0, - rendered_canvases : 0, - times_rendered : 0, - glitched_canvases : Array(), - curr_canvas : null, - - __state_machine: function(gl) { - var otg = gl.object_to_glitch; - - /* If we need to render only a few times and stop, return here */ - if (gl.GLITCH_RENDER_COUNT > 0 && gl.times_rendered >= gl.GLITCH_RENDER_COUNT) { - if (typeof gl.done_callback == "function") - gl.done_callback(); - return; - } - - if (gl.curr_canvas != null) { - otg.removeChild(gl.curr_canvas); - } - if ((0 < gl.glitched_canvases.length) && (gl.rendered_canvases < gl.glitched_canvases.length)) { - gl.curr_canvas = gl.glitched_canvases[gl.rendered_canvases]; - otg.insertBefore(gl.curr_canvas, otg.firstChild); - gl.rendered_canvases++; - setTimeout(function() { gl.__state_machine(gl) }, gl.DELAY_BETWEEN_FRAMES); - } else { - if (gl.GLITCH_RENDER_COUNT > 0 && gl.rendered_canvases >= gl.glitched_canvases.length) - gl.times_rendered ++; - gl.rendered_canvases = 0; - if (gl.DELAY_BETWEEN_GLITCHES > 0) - setTimeout(function() { gl.__state_machine(gl) }, gl.DELAY_BETWEEN_GLITCHES); - else if (gl.GLITCH_INTERVAL_PROGRESSIVE && gl.GLITCH_RENDER_COUNT > 0) - setTimeout(function() { gl.__state_machine(gl) }, gl.times_rendered * getRandomInt(500, 1500)); - else - setTimeout(function() { gl.__state_machine(gl) }, getRandomInt(gl.GLITCH_INTERVAL_MIN, gl.GLITCH_INTERVAL_MAX)); - gl.curr_canvas = null; - - if (gl.GLITCH_REFRESH_FRAMES_INTERVAL > 0 && --gl.refresh_glitch_frames_counter <= 0) { - gl.glitch_frames(); - gl.refresh_glitch_frames_counter = gl.GLITCH_REFRESH_FRAMES_INTERVAL; - } - } - }, - - glitch_frames : function() { - var gl = this; - gl.glitched_canvases = Array(); - for(var i = 0; i < gl.NR_OF_GLITCHED_CANVASES; ++i) { - glitch(gl.object_to_glitch, { - amount: i, - complete: function(canvas) { - var otg = gl.object_to_glitch; - gl.glitched_canvases.push(canvas); - canvas.style.position = "absolute"; - canvas.style.top = otg.top; - canvas.style.left = otg.left; - } - }); - } - }, - - start: function(obj_to_glitch) { - var gl = this; - gl.object_to_glitch = obj_to_glitch; - gl.glitch_frames(); - gl.__state_machine(gl); - } - -}; - -//================================================================================================= END \ No newline at end of file diff --git a/_site/assets/js/glitch/glitch-lib.js b/_site/assets/js/glitch/glitch-lib.js deleted file mode 100644 index bd065f6..0000000 --- a/_site/assets/js/glitch/glitch-lib.js +++ /dev/null @@ -1,391 +0,0 @@ -/** - @license glitch.js v0.1 - Released under MIT License - - Copyright (c) 2012 Simon Hewitt. - http://www.twitter.com/sjhewitt - */ - (function($){ - /*global html2canvas */ - - var noop = function(){}, - /** - * Set default properties on an object - * @param {Object} obj The target object - * @param {Object} defaults The default properties - * @return {Object} The target obj - */ - defaults = function(obj, defaults) { - for (var prop in defaults) { - if (obj[prop] == null) - obj[prop] = defaults[prop]; - } - return obj; - }, - /** - * Generates an integer between min and max - * - * @param {Number} min The lower bound - * @param {Number} max The upper bound - * @return {Number} A random number - */ - getRandInt = function(min, max) { - return (Math.floor(Math.random() * (max - min) + min)); - }; - - - /** - * Apply the glitch effect to a canvas object - * - * @param {HTMLCanvasElement} canvas The canvas (or HTMLImageElement) to apply the glitch to - * @param {number} amount The amount to glitch the canvas (default: 6) - * @return {HTMLCanvasElement} A canvas containing a glitched version - * of the original canvas - */ - var _glitch = function(canvas, amount) { - var - // cache the width and height of the canvas locally - x, y, w = canvas.width, h = canvas.height, - - // _len is an iterator limit, initially storing the number of slices - // to create - i, _len = amount || 6, - - // pick a random amount to offset the color channel - channelOffset = (getRandInt(-_len*2, _len*2) * w * + getRandInt(-_len, _len)) * 4, - - // the maximum amount to offset a chunk of the image is a function of its width - maxOffset = _len * _len / 100 * w, - - // vars for the width and height of the chunk that gets offset - chunkWidth, chunkHeight, - - // create a temporary canvas to hold the image we're working on - tempCanvas = document.createElement("canvas"), - tempCtx = tempCanvas.getContext("2d"), - - srcData, targetImageData, data; - - // set the dimensions of the working canvas - tempCanvas.width = w; - tempCanvas.height = h; - - // draw the initial image onto the working canvas - tempCtx.drawImage(canvas, 0, 0, w, h); - - // store the data of the original image for use when offsetting a channel - srcData = tempCtx.getImageData(0, 0, w, h).data; - - // randomly offset slices horizontally - for (i = 0; i < _len; i++) { - - // pick a random y coordinate to slice at - y = getRandInt(0, h); - - // pick a random height of the slice - chunkHeight = Math.min(getRandInt(1, h / 4), h - y); - - // pick a random horizontal distance to offset the slice - x = getRandInt(1, maxOffset); - chunkWidth = w - x; - - // draw the first chunk - tempCtx.drawImage(canvas, - 0, y, chunkWidth, chunkHeight, - x, y, chunkWidth, chunkHeight); - - // draw the rest - tempCtx.drawImage(canvas, - chunkWidth, y, x, chunkHeight, - 0, y, x, chunkHeight); - } - - // get hold of the ImageData for the working image - targetImageData = tempCtx.getImageData(0, 0, w, h); - - // and get a local reference to the rgba data array - data = targetImageData.data; - - // Copy a random color channel from the original image into - // the working canvas, offsetting it by a random amount - // - // ImageData arrays are a single dimension array that contains - // 4 values for each pixel. - // so, by initializing `i` to a random number between 0 and 2, - // and incrementing by 4 on each iteration, we can replace only - // a single channel in the image - for(i = getRandInt(0, 3), _len = srcData.length; i < _len; i += 4) { - data[i+channelOffset] = srcData[i]; - } - - // Make the image brighter by doubling the rgb values - for(i = 0; i < _len; i++) { - data[i++] *= 2; - data[i++] *= 2; - data[i++] *= 2; - } - - // TODO: The above loops are the most costly in this function, iterating - // over all the pixels in the image twice. - // It maybe possible to optimize this by combining both loops into one, - // and only processing every other line, as alternate lines are replaced - // with black in the 'scan lines' block belop - - // copy the tweaked ImageData back into the context - tempCtx.putImageData(targetImageData, 0, 0); - - // add scan lines - tempCtx.fillStyle = "rgb(0,0,0)"; - for (i = 0; i < h; i += 2) { - tempCtx.fillRect (0, i, w, 1); - } - - return tempCanvas; - }; - - /** - * Creates a canvas containing a glitched version of the element - * @param {DOMElement} el The element to glitch - * @param {Object} options An object containing the complete callback, - * the amount to glitch the image, and any - * html2canvas options - */ - var glitch = function(el, options) { - options = defaults(options || {}, { - // the amount to glitch the image - amount: 6, - // a callback that takes the glitched canvas as its only argument - complete: noop - }); - - // callback for when the element has been rendered - options.onrendered = function(canvas) { - options.complete(_glitch(canvas, options.amount)); - }; - - // render the element onto a canvas - html2canvas(el[0] ? el : [el], options); - }; - - /** - * Replace el with a glitched version of it - * @param {DOMElement} el The element to glitch - * @param {Object} options An object containing the options for glitch - */ - glitch.replace = function(el, options) { - options = options || {}; - // store a reference to the complete callback so we can use the same - // options for the glitch function call - var _complete = options.complete; - options.complete = function(canvas) { - if($ && el instanceof $) { - el.after(canvas).detach(); - } else { - // no jQuery... - el.parentNode.insertBefore(canvas, el); - el.parentNode.removeChild(el); - } - if(_complete){ - _complete(); - } - }; - - glitch(el, options); - }; - - /** - * Replace `el` with `newEl` by overlaying a glitched version of `el`, then - * animating it out to reveal `newEl` - * - * The animation will take into account elements of different sizes by sliding - * the container to reveal it, however it looks best if the elements to be - * transitioned between are of similar sizes - * - * @param {jQuery} el The original element that will be glitched - * @param {jQuery} newEl The element to show - * @param {Object} options An object containing the options for the animation - * and any options for html2canvas - */ - glitch.transition = function(el, newEl, options) { - // set the default options - options = defaults(options || {}, { - // the amount to glitch the image - amount: 6, - // A callback when the animation is complete - complete: noop, - // The delay after rendering the glitched element until starting the transition - delay: 300, - // The duration of the transition effect - duration: 500, - // The z-index to apply to the overlay. You might need to tweak this if - // you have things that appear above the element, or are using high - // z-indexes in your page - zIndex: 1000, - // the transition effect to use. This may be "fade" or "slide" - effect: "fade", - // The size of the top border. Set to 0 to disable, only used in slide mode - borderSize: 2, - // The color of the top border, only used in slide mode - borderColor: "green" - }); - - // add the new element to the dom so we can properly calculate its dimensions - newEl.insertAfter(el); - - // store a reference to the complete callback so we can use the same - // options for the glitch function call - var _complete = options.complete, - // get the dimensions of the elements so we can resize the targetContainer - // to reveal all the content after the glitch transition - origHeight = el.outerHeight(true), - origWidth = el.outerWidth(true), - targetHeight = newEl.outerHeight(true), - targetWidth = newEl.outerWidth(true), - origOverflow = newEl.css("overflow"); - - // take the new element out of the dom again - newEl.detach(); - - // create a callback that will - options.complete = function(canvas){ - // position the canvas absolutely within the container - var $canvas = $(canvas).css("position", "absolute"), - offset = el.offset(), - // create a container element that contains the canvas and position it - // over the element we're replacing - container = $("
").css({ - "border-top": options.borderSize ? options.borderSize + "px solid " + - options.borderColor : "none", - position: "absolute", - left: offset.left, - top: offset.top - options.borderSize, - width: canvas.width, - height: canvas.height, - overflow: "hidden", - "z-index": options.zIndex - }) - // add the canvas as a child to the container - .html(canvas) - // add the container to the dom - .appendTo("body") - // delay the animation a bit - .delay(options.delay), - - targetContainer = $("
").css({ - width: origWidth, - height: origHeight, - overflow: "hidden", - border: "none", - "box-sizing": "border-box" - }) - .html(newEl), - - // the default transition effect is to fade out - animation = { - opacity: 0 - }, - animateOptions = { - duration: options.duration, - complete: function(){ - // when the animation is done: - // remove the container from the dom - container.remove(); - - // then animate the height of the new element back to its measured - // height and width - targetContainer.animate({ - height: targetHeight, - width: targetWidth - }, - { - duration: 100, - complete: function(){ - - // take the targetContainer element out of the dom - newEl.detach().insertAfter(targetContainer); - targetContainer.remove(); - - // call the complete callback - _complete(); - - // and clear all references - options = $canvas = container = null; - - } - }); - - } - }; - - if(options.effect === "slide") { - // for the slide effect, we move move the container down - animation = { - top: offset.top + canvas.height, - height: 0 - }; - - // and on each step of the animation, we need to offset the top so it - // remains in the same place on the screen - animateOptions.step = function(now, fx){ - if(fx.prop === "top") { - $canvas.css("top", fx.start - now); - } - }; - } - - // apply the animation - container.animate(animation, animateOptions); - - // replace the original element with the new one - // we use detatch so that the event handlers on the old - // element are retained. - targetContainer.insertAfter(el); - el.detach(); - - }; - - // create a glitched version of the start element - glitch(el, options); - }; - - window.glitch = glitch; - - if($) { - /** - * jQuery glitch.js plugin - * - * This can be called in the following ways: - * - * Replace the element with a glitched version - * $("#el").glitch() - * - * Create a glitched canvas and pass it to a callback function - * $("#el").glitch(function(canvas){}) - * - * Transition effect - * $("#el").glitch('transition', $("#newEl"), {}) - */ - $.fn.glitch = function(method) { - var args = Array.prototype.splice.call(arguments, 1); - method = method || 'replace'; - return this.each(function(){ - if(method instanceof $) { - glitch.transition($(this), method, args[0]); - } else if(typeof method == 'function') { - // just a callback passed in - glitch($(this), { - complete: method - }); - } else if(typeof method == 'object') { - // an options object passed in - glitch($(this), method); - } else if(glitch.hasOwnProperty(method)) { - // explicitly call a method - glitch[method].apply(null, [$(this)].concat(args)); - } else { - $.error('Method ' + method + ' does not exist on jQuery.glitch'); - } - }); - }; - } - })(window.jQuery); \ No newline at end of file diff --git a/_site/assets/js/glitch/html2canvas.js b/_site/assets/js/glitch/html2canvas.js deleted file mode 100644 index 97b5e91..0000000 --- a/_site/assets/js/glitch/html2canvas.js +++ /dev/null @@ -1,2791 +0,0 @@ -/** - @license html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - (function(window, document, undefined){ - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - "use strict"; - - var _html2canvas = {}, - previousElement, - computedCSS, - html2canvas; - - - function h2clog(a) { - if (_html2canvas.logging && window.console && window.console.log) { - window.console.log(a); - } - } - - _html2canvas.Util = {}; - - _html2canvas.Util.backgroundImage = function (src) { - - if (/data:image\/.*;base64,/i.test( src ) || /^(-webkit|-moz|linear-gradient|-o-)/.test( src )) { - return src; - } - - if (src.toLowerCase().substr( 0, 5 ) === 'url("') { - src = src.substr( 5 ); - src = src.substr( 0, src.length - 2 ); - } else { - src = src.substr( 4 ); - src = src.substr( 0, src.length - 1 ); - } - - return src; - }; - - function adjustBounds(el, box) { - var win = document.defaultView; - var doc = el.ownerDocument; - var body = doc.body; - var docElem = doc.documentElement; - var clientTop = docElem.clientTop || body.clientTop || 0; - var clientLeft = docElem.clientLeft || body.clientLeft || 0; - var scrollTop = win.pageYOffset || docElem.scrollTop; - var scrollLeft = win.pageXOffset || docElem.scrollLeft; - var top = box.top + scrollTop - clientTop; - var left = box.left + scrollLeft - clientLeft; - - return { - top: top, - left: left, - bottom: top + box.height, - height: box.height, - width: box.width - }; - } - - _html2canvas.Util.Bounds = function getBounds (el) { - var clientRect, - bounds = {}; - - if (el.getBoundingClientRect){ - return adjustBounds(el, el.getBoundingClientRect()); - } - }; - - _html2canvas.Util.getCSS = function (el, attribute) { - // return $(el).css(attribute); - - var val; - - function toPX( attribute, val ) { - var rsLeft = el.runtimeStyle && el.runtimeStyle[ attribute ], - left, - style = el.style; - - // Check if we are not dealing with pixels, (Opera has issues with this) - // Ported from jQuery css.js - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - - if ( !/^-?[0-9]+\.?[0-9]*(?:px)?$/i.test( val ) && /^-?\d/.test( val ) ) { - - // Remember the original values - left = style.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - el.runtimeStyle.left = el.currentStyle.left; - } - style.left = attribute === "fontSize" ? "1em" : (val || 0); - val = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - el.runtimeStyle.left = rsLeft; - } - - } - - if (!/^(thin|medium|thick)$/i.test( val )) { - return Math.round(parseFloat( val )) + "px"; - } - - return val; - - } - - - if ( window.getComputedStyle ) { - if ( previousElement !== el ) { - computedCSS = document.defaultView.getComputedStyle(el, null); - } - val = computedCSS[ attribute ]; - - if ( attribute === "backgroundPosition" ) { - - val = (val.split(",")[0] || "0 0").split(" "); - - val[ 0 ] = ( val[0].indexOf( "%" ) === -1 ) ? toPX( attribute + "X", val[ 0 ] ) : val[ 0 ]; - val[ 1 ] = ( val[1] === undefined ) ? val[0] : val[1]; // IE 9 doesn't return double digit always - val[ 1 ] = ( val[1].indexOf( "%" ) === -1 ) ? toPX( attribute + "Y", val[ 1 ] ) : val[ 1 ]; - } - - } else if ( el.currentStyle ) { - // IE 9> - if (attribute === "backgroundPosition") { - // Older IE uses -x and -y - val = [ toPX( attribute + "X", el.currentStyle[ attribute + "X" ] ), toPX( attribute + "Y", el.currentStyle[ attribute + "Y" ] ) ]; - } else { - - val = toPX( attribute, el.currentStyle[ attribute ] ); - - if (/^(border)/i.test( attribute ) && /^(medium|thin|thick)$/i.test( val )) { - switch (val) { - case "thin": - val = "1px"; - break; - case "medium": - val = "0px"; // this is wrong, it should be 3px but IE uses medium for no border as well.. TODO find a work around - break; - case "thick": - val = "5px"; - break; - } - } - } - - - - } - - - - - return val; - - - - //return $(el).css(attribute); - - - }; - - - _html2canvas.Util.BackgroundPosition = function ( el, bounds, image ) { - // TODO add support for multi image backgrounds - - var bgposition = _html2canvas.Util.getCSS( el, "backgroundPosition" ) , - topPos, - left, - percentage, - val; - - if (bgposition.length === 1){ - val = bgposition; - - bgposition = []; - - bgposition[0] = val; - bgposition[1] = val; - } - - - - if (bgposition[0].toString().indexOf("%") !== -1){ - percentage = (parseFloat(bgposition[0])/100); - left = ((bounds.width * percentage)-(image.width*percentage)); - - }else{ - left = parseInt(bgposition[0],10); - } - - if (bgposition[1].toString().indexOf("%") !== -1){ - - percentage = (parseFloat(bgposition[1])/100); - topPos = ((bounds.height * percentage)-(image.height*percentage)); - }else{ - topPos = parseInt(bgposition[1],10); - } - - - - - return { - top: topPos, - left: left - }; - - }; - - _html2canvas.Util.Extend = function (options, defaults) { - for (var key in options) { - if (options.hasOwnProperty(key)) { - defaults[key] = options[key]; - } - } - return defaults; - }; - - - /* - * Derived from jQuery.contents() - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ - _html2canvas.Util.Children = function( elem ) { - - - var children; - try { - - children = (elem.nodeName && elem.nodeName.toUpperCase() === "IFRAME") ? - elem.contentDocument || elem.contentWindow.document : (function( array ){ - var ret = []; - - if ( array !== null ) { - - (function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - })( ret, array ); - - } - - return ret; - })( elem.childNodes ); - - } catch (ex) { - h2clog("html2canvas.Util.Children failed with exception: " + ex.message); - children = []; - } - return children; - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Contributor(s): - Niklas von Hertzen - André Fiedler - - Released under MIT License - */ - - (function(){ - - _html2canvas.Generate = {}; - - var reGradients = [ - /^(-webkit-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-o-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-webkit-gradient)\((linear|radial),\s((?:\d{1,3}%?)\s(?:\d{1,3}%?),\s(?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)-]+)\)$/, - /^(-moz-linear-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)]+)\)$/, - /^(-webkit-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z-]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-moz-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s?([a-z-]*)([\w\d\.\s,%\(\)]+)\)$/, - /^(-o-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z-]+)([\w\d\.\s,%\(\)]+)\)$/ - ]; - - /* - * TODO: Add IE10 vendor prefix (-ms) support - * TODO: Add W3C gradient (linear-gradient) support - * TODO: Add old Webkit -webkit-gradient(radial, ...) support - * TODO: Maybe some RegExp optimizations are possible ;o) - */ - _html2canvas.Generate.parseGradient = function(css, bounds) { - var gradient, i, len = reGradients.length, m1, stop, m2, m2Len, step, m3; - - for(i = 0; i < len; i+=1){ - m1 = css.match(reGradients[i]); - if(m1) break; - } - - if(m1) { - switch(m1[1]) { - case '-webkit-linear-gradient': - case '-o-linear-gradient': - - gradient = { - type: 'linear', - x0: null, - y0: null, - x1: null, - y1: null, - colorStops: [] - }; - - // get coordinates - m2 = m1[2].match(/\w+/g); - if(m2){ - m2Len = m2.length; - for(i = 0; i < m2Len; i+=1){ - switch(m2[i]) { - case 'top': - gradient.y0 = 0; - gradient.y1 = bounds.height; - break; - - case 'right': - gradient.x0 = bounds.width; - gradient.x1 = 0; - break; - - case 'bottom': - gradient.y0 = bounds.height; - gradient.y1 = 0; - break; - - case 'left': - gradient.x0 = 0; - gradient.x1 = bounds.width; - break; - } - } - } - if(gradient.x0 === null && gradient.x1 === null){ // center - gradient.x0 = gradient.x1 = bounds.width / 2; - } - if(gradient.y0 === null && gradient.y1 === null){ // center - gradient.y0 = gradient.y1 = bounds.height / 2; - } - - // get colors and stops - m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3] === '%'){ - stop /= 100; - } else { // px - stupid opera - stop /= bounds.width; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - - case '-webkit-gradient': - - gradient = { - type: m1[2] === 'radial' ? 'circle' : m1[2], // TODO: Add radial gradient support for older mozilla definitions - x0: 0, - y0: 0, - x1: 0, - y1: 0, - colorStops: [] - }; - - // get coordinates - m2 = m1[3].match(/(\d{1,3})%?\s(\d{1,3})%?,\s(\d{1,3})%?\s(\d{1,3})%?/); - if(m2){ - gradient.x0 = (m2[1] * bounds.width) / 100; - gradient.y0 = (m2[2] * bounds.height) / 100; - gradient.x1 = (m2[3] * bounds.width) / 100; - gradient.y1 = (m2[4] * bounds.height) / 100; - } - - // get colors and stops - m2 = m1[4].match(/((?:from|to|color-stop)\((?:[0-9\.]+,\s)?(?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)\))+/g); - if(m2){ - m2Len = m2.length; - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/(from|to|color-stop)\(([0-9\.]+)?(?:,\s)?((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\)/); - stop = parseFloat(m3[2]); - if(m3[1] === 'from') stop = 0.0; - if(m3[1] === 'to') stop = 1.0; - gradient.colorStops.push({ - color: m3[3], - stop: stop - }); - } - } - break; - - case '-moz-linear-gradient': - - gradient = { - type: 'linear', - x0: 0, - y0: 0, - x1: 0, - y1: 0, - colorStops: [] - }; - - // get coordinates - m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/); - - // m2[1] == 0% -> left - // m2[1] == 50% -> center - // m2[1] == 100% -> right - - // m2[2] == 0% -> top - // m2[2] == 50% -> center - // m2[2] == 100% -> bottom - - if(m2){ - gradient.x0 = (m2[1] * bounds.width) / 100; - gradient.y0 = (m2[2] * bounds.height) / 100; - gradient.x1 = bounds.width - gradient.x0; - gradient.y1 = bounds.height - gradient.y0; - } - - // get colors and stops - m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}%)?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3]){ // percentage - stop /= 100; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - - case '-webkit-radial-gradient': - case '-moz-radial-gradient': - case '-o-radial-gradient': - - gradient = { - type: 'circle', - x0: 0, - y0: 0, - x1: bounds.width, - y1: bounds.height, - cx: 0, - cy: 0, - rx: 0, - ry: 0, - colorStops: [] - }; - - // center - m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/); - if(m2){ - gradient.cx = (m2[1] * bounds.width) / 100; - gradient.cy = (m2[2] * bounds.height) / 100; - } - - // size - m2 = m1[3].match(/\w+/); - m3 = m1[4].match(/[a-z-]*/); - if(m2 && m3){ - switch(m3[0]){ - case 'farthest-corner': - case 'cover': // is equivalent to farthest-corner - case '': // mozilla removes "cover" from definition :( - var tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2)); - var tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2)); - gradient.rx = gradient.ry = Math.max(tl, tr, br, bl); - break; - case 'closest-corner': - var tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2)); - var tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2)); - gradient.rx = gradient.ry = Math.min(tl, tr, br, bl); - break; - case 'farthest-side': - if(m2[0] === 'circle'){ - gradient.rx = gradient.ry = Math.max( - gradient.cx, - gradient.cy, - gradient.x1 - gradient.cx, - gradient.y1 - gradient.cy - ); - } else { // ellipse - - gradient.type = m2[0]; - - gradient.rx = Math.max( - gradient.cx, - gradient.x1 - gradient.cx - ); - gradient.ry = Math.max( - gradient.cy, - gradient.y1 - gradient.cy - ); - } - break; - case 'closest-side': - case 'contain': // is equivalent to closest-side - if(m2[0] === 'circle'){ - gradient.rx = gradient.ry = Math.min( - gradient.cx, - gradient.cy, - gradient.x1 - gradient.cx, - gradient.y1 - gradient.cy - ); - } else { // ellipse - - gradient.type = m2[0]; - - gradient.rx = Math.min( - gradient.cx, - gradient.x1 - gradient.cx - ); - gradient.ry = Math.min( - gradient.cy, - gradient.y1 - gradient.cy - ); - } - break; - - // TODO: add support for "30px 40px" sizes (webkit only) - } - } - - // color stops - m2 = m1[5].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3] === '%'){ - stop /= 100; - } else { // px - stupid opera - stop /= bounds.width; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - } - } - - return gradient; - }; - - _html2canvas.Generate.Gradient = function(src, bounds) { - var canvas = document.createElement('canvas'), - ctx = canvas.getContext('2d'), - gradient, grad, i, len, img; - - canvas.width = bounds.width; - canvas.height = bounds.height; - - // TODO: add support for multi defined background gradients (like radial gradient example in background.html) - gradient = _html2canvas.Generate.parseGradient(src, bounds); - - img = new Image(); - - if(gradient){ - if(gradient.type === 'linear'){ - grad = ctx.createLinearGradient(gradient.x0, gradient.y0, gradient.x1, gradient.y1); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctx.fillStyle = grad; - ctx.fillRect(0, 0, bounds.width, bounds.height); - - img.src = canvas.toDataURL(); - } else if(gradient.type === 'circle'){ - - grad = ctx.createRadialGradient(gradient.cx, gradient.cy, 0, gradient.cx, gradient.cy, gradient.rx); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctx.fillStyle = grad; - ctx.fillRect(0, 0, bounds.width, bounds.height); - - img.src = canvas.toDataURL(); - } else if(gradient.type === 'ellipse'){ - - // draw circle - var canvasRadial = document.createElement('canvas'), - ctxRadial = canvasRadial.getContext('2d'), - ri = Math.max(gradient.rx, gradient.ry), - di = ri * 2, imgRadial; - - canvasRadial.width = canvasRadial.height = di; - - grad = ctxRadial.createRadialGradient(gradient.rx, gradient.ry, 0, gradient.rx, gradient.ry, ri); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctxRadial.fillStyle = grad; - ctxRadial.fillRect(0, 0, di, di); - - ctx.fillStyle = gradient.colorStops[i - 1].color; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - imgRadial = new Image(); - imgRadial.onload = function() { // wait until the image is filled - - // transform circle to ellipse - ctx.drawImage(imgRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry); - - img.src = canvas.toDataURL(); - - } - imgRadial.src = canvasRadial.toDataURL(); - } - } - - return img; - }; - - _html2canvas.Generate.ListAlpha = function(number) { - var tmp = "", - modulus; - - do { - modulus = number % 26; - tmp = String.fromCharCode((modulus) + 64) + tmp; - number = number / 26; - }while((number*26) > 26); - - return tmp; - }; - - _html2canvas.Generate.ListRoman = function(number) { - var romanArray = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"], - decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1], - roman = "", - v, - len = romanArray.length; - - if (number <= 0 || number >= 4000) { - return number; - } - - for (v=0; v < len; v+=1) { - while (number >= decimal[v]) { - number -= decimal[v]; - roman += romanArray[v]; - } - } - - return roman; - - }; - - })(); - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - /* - * New function for traversing elements - */ - - _html2canvas.Parse = function ( images, options ) { - - var support = { - rangeBounds: false, - svgRendering: options.svgRendering && (function( ){ - var img = new Image(), - canvas = document.createElement("canvas"), - ctx = (canvas.getContext === undefined) ? false : canvas.getContext("2d"); - if (ctx === false) { - // browser doesn't support canvas, good luck supporting SVG on canvas - return false; - } - canvas.width = canvas.height = 10; - img.src = [ - "data:image/svg+xml,", - "", - "", - "
", - "sup", - "
", - "
", - "
" - ].join(""); - try { - ctx.drawImage(img, 0, 0); - canvas.toDataURL(); - } catch(e) { - return false; - } - h2clog('html2canvas: Parse: SVG powered rendering available'); - return true; - - })() - }, - element = (( options.elements === undefined ) ? document.body : options.elements[0]), // select body by default - needReorder = false, - numDraws = 0, - fontData = {}, - doc = element.ownerDocument, - ignoreElementsRegExp = new RegExp("(" + options.ignoreElements + ")"), - body = doc.body, - r, - testElement, - rangeBounds, - rangeHeight, - stack, - ctx, - docDim, - i, - children, - childrenLen; - - - function docSize(){ - - return { - width: Math.max( - Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth), - Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth), - Math.max(doc.body.clientWidth, doc.documentElement.clientWidth) - ), - height: Math.max( - Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight), - Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight), - Math.max(doc.body.clientHeight, doc.documentElement.clientHeight) - ) - }; - - } - - images = images || {}; - - // Test whether we can use ranges to measure bounding boxes - // Opera doesn't provide valid bounds.height/bottom even though it supports the method. - - - if (doc.createRange) { - r = doc.createRange(); - //this.support.rangeBounds = new Boolean(r.getBoundingClientRect); - if (r.getBoundingClientRect){ - testElement = doc.createElement('boundtest'); - testElement.style.height = "123px"; - testElement.style.display = "block"; - body.appendChild(testElement); - - r.selectNode(testElement); - rangeBounds = r.getBoundingClientRect(); - rangeHeight = rangeBounds.height; - - if (rangeHeight === 123) { - support.rangeBounds = true; - } - body.removeChild(testElement); - - - } - - } - - - /* - var rootStack = new this.storageContext($(document).width(),$(document).height()); - rootStack.opacity = this.getCSS(this.element,"opacity"); - var stack = this.newElement(this.element,rootStack); - - - this.parseElement(this.element,stack); - */ - - - - - var getCSS = _html2canvas.Util.getCSS; - function getCSSInt(element, attribute) { - var val = parseInt(getCSS(element, attribute), 10); - return (isNaN(val)) ? 0 : val; // borders in old IE are throwing 'medium' for demo.html - } - - // Drawing a rectangle - function renderRect (ctx, x, y, w, h, bgcolor) { - if (bgcolor !=="transparent"){ - ctx.setVariable("fillStyle", bgcolor); - ctx.fillRect (x, y, w, h); - numDraws+=1; - } - } - - - function textTransform (text, transform) { - switch(transform){ - case "lowercase": - return text.toLowerCase(); - - case "capitalize": - return text.replace( /(^|\s|:|-|\(|\))([a-z])/g , function (m, p1, p2) { - if (m.length > 0) { - return p1 + p2.toUpperCase(); - } - } ); - - case "uppercase": - return text.toUpperCase(); - - default: - return text; - - } - - } - - function trimText (text) { - return text.replace(/^\s*/g, "").replace(/\s*$/g, ""); - } - - function fontMetrics (font, fontSize) { - - if (fontData[font + "-" + fontSize] !== undefined) { - return fontData[font + "-" + fontSize]; - } - - - var container = doc.createElement('div'), - img = doc.createElement('img'), - span = doc.createElement('span'), - baseline, - middle, - metricsObj; - - - container.style.visibility = "hidden"; - container.style.fontFamily = font; - container.style.fontSize = fontSize; - container.style.margin = 0; - container.style.padding = 0; - - body.appendChild(container); - - - - // http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever (handtinywhite.gif) - img.src = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs="; - img.width = 1; - img.height = 1; - - img.style.margin = 0; - img.style.padding = 0; - img.style.verticalAlign = "baseline"; - - span.style.fontFamily = font; - span.style.fontSize = fontSize; - span.style.margin = 0; - span.style.padding = 0; - - - - - span.appendChild(doc.createTextNode('Hidden Text')); - container.appendChild(span); - container.appendChild(img); - baseline = (img.offsetTop - span.offsetTop) + 1; - - container.removeChild(span); - container.appendChild(doc.createTextNode('Hidden Text')); - - container.style.lineHeight = "normal"; - img.style.verticalAlign = "super"; - - middle = (img.offsetTop-container.offsetTop) + 1; - metricsObj = { - baseline: baseline, - lineWidth: 1, - middle: middle - }; - - - fontData[font + "-" + fontSize] = metricsObj; - - body.removeChild(container); - - return metricsObj; - - } - - - function drawText(currentText, x, y, ctx){ - if (trimText(currentText).length>0) { - ctx.fillText(currentText,x,y); - numDraws+=1; - } - } - - - function renderText(el, textNode, stack) { - var ctx = stack.ctx, - family = getCSS(el, "fontFamily"), - size = getCSS(el, "fontSize"), - color = getCSS(el, "color"), - text_decoration = getCSS(el, "textDecoration"), - text_align = getCSS(el, "textAlign"), - letter_spacing = getCSS(el, "letterSpacing"), - bounds, - text, - metrics, - renderList, - listLen, - bold = getCSS(el, "fontWeight"), - font_style = getCSS(el, "fontStyle"), - font_variant = getCSS(el, "fontVariant"), - align = false, - newTextNode, - textValue, - textOffset = 0, - oldTextNode, - c, - range, - parent, - wrapElement, - backupText; - - // apply text-transform:ation to the text - - - - textNode.nodeValue = textTransform(textNode.nodeValue, getCSS(el, "textTransform")); - text = trimText(textNode.nodeValue); - - if (text.length>0){ - - if (text_decoration !== "none"){ - metrics = fontMetrics(family, size); - } - - text_align = text_align.replace(["-webkit-auto"],["auto"]); - - if (options.letterRendering === false && /^(left|right|justify|auto)$/.test(text_align) && /^(normal|none)$/.test(letter_spacing)){ - // this.setContextVariable(ctx,"textAlign",text_align); - renderList = textNode.nodeValue.split(/(\b| )/); - - }else{ - // this.setContextVariable(ctx,"textAlign","left"); - renderList = textNode.nodeValue.split(""); - } - - switch(parseInt(bold, 10)){ - case 401: - bold = "bold"; - break; - case 400: - bold = "normal"; - break; - } - - ctx.setVariable("fillStyle", color); - - /* - need to be defined in the order as defined in http://www.w3.org/TR/CSS21/fonts.html#font-shorthand - to properly work in Firefox - */ - ctx.setVariable("font", font_style+ " " + font_variant + " " + bold + " " + size + " " + family); - - if (align){ - ctx.setVariable("textAlign", "right"); - }else{ - ctx.setVariable("textAlign", "left"); - } - - - /* - if (stack.clip){ - ctx.rect (stack.clip.left, stack.clip.top, stack.clip.width, stack.clip.height); - ctx.clip(); - } - */ - - - oldTextNode = textNode; - - - for ( c=0, listLen = renderList.length; c < listLen; c+=1 ) { - textValue = null; - - - - if (support.rangeBounds){ - // getBoundingClientRect is supported for ranges - if (text_decoration !== "none" || trimText(renderList[c]).length !== 0) { - textValue = renderList[c]; - if (doc.createRange){ - range = doc.createRange(); - - range.setStart(textNode, textOffset); - range.setEnd(textNode, textOffset + textValue.length); - }else{ - // TODO add IE support - range = body.createTextRange(); - } - - bounds = adjustBounds(textNode, range.getBoundingClientRect()); - - } - }else{ - // it isn't supported, so let's wrap it inside an element instead and get the bounds there - - // IE 9 bug - if (typeof oldTextNode.nodeValue !== "string" ){ - continue; - } - - newTextNode = oldTextNode.splitText(renderList[c].length); - - parent = oldTextNode.parentNode; - wrapElement = doc.createElement('wrapper'); - backupText = oldTextNode.cloneNode(true); - - wrapElement.appendChild(oldTextNode.cloneNode(true)); - parent.replaceChild(wrapElement, oldTextNode); - - bounds = _html2canvas.Util.Bounds(wrapElement); - - textValue = oldTextNode.nodeValue; - - oldTextNode = newTextNode; - parent.replaceChild(backupText, wrapElement); - - - } - - if (textValue !== null){ - drawText(textValue, bounds.left, bounds.bottom, ctx); - } - - switch(text_decoration) { - case "underline": - // Draws a line at the baseline of the font - // TODO As some browsers display the line as more than 1px if the font-size is big, need to take that into account both in position and size - renderRect(ctx, bounds.left, Math.round(bounds.top + metrics.baseline + metrics.lineWidth), bounds.width, 1, color); - break; - case "overline": - renderRect(ctx, bounds.left, bounds.top, bounds.width, 1, color); - break; - case "line-through": - // TODO try and find exact position for line-through - renderRect(ctx, bounds.left, Math.ceil(bounds.top + metrics.middle + metrics.lineWidth), bounds.width, 1, color); - break; - - } - - - - - - textOffset += renderList[c].length; - - } - - - - } - - } - - function listPosition (element, val) { - var boundElement = doc.createElement( "boundelement" ), - type, - bounds; - - boundElement.style.display = "inline"; - //boundElement.style.width = "1px"; - //boundElement.style.height = "1px"; - - type = element.style.listStyleType; - element.style.listStyleType = "none"; - - boundElement.appendChild( doc.createTextNode( val ) ); - - - element.insertBefore(boundElement, element.firstChild); - - - bounds = _html2canvas.Util.Bounds( boundElement ); - element.removeChild( boundElement ); - element.style.listStyleType = type; - return bounds; - - } - - - - function elementIndex( el ) { - var i = -1, - count = 1, - childs = el.parentNode.childNodes; - - if ( el.parentNode ) { - while( childs[ ++i ] !== el ) { - if ( childs[ i ].nodeType === 1 ) { - count++; - } - } - return count; - } else { - return -1; - } - - } - - function renderListItem(element, stack, elBounds) { - - - var position = getCSS(element, "listStylePosition"), - x, - y, - type = getCSS(element, "listStyleType"), - currentIndex, - text, - listBounds, - bold = getCSS(element, "fontWeight"); - - if (/^(decimal|decimal-leading-zero|upper-alpha|upper-latin|upper-roman|lower-alpha|lower-greek|lower-latin|lower-roman)$/i.test(type)) { - - currentIndex = elementIndex( element ); - - switch(type){ - case "decimal": - text = currentIndex; - break; - case "decimal-leading-zero": - if (currentIndex.toString().length === 1){ - text = currentIndex = "0" + currentIndex.toString(); - }else{ - text = currentIndex.toString(); - } - break; - case "upper-roman": - text = _html2canvas.Generate.ListRoman( currentIndex ); - break; - case "lower-roman": - text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase(); - break; - case "lower-alpha": - text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase(); - break; - case "upper-alpha": - text = _html2canvas.Generate.ListAlpha( currentIndex ); - break; - } - - - text += ". "; - listBounds = listPosition(element, text); - - - - switch(bold){ - case 401: - bold = "bold"; - break; - case 400: - bold = "normal"; - break; - } - - - - - ctx.setVariable( "fillStyle", getCSS(element, "color") ); - ctx.setVariable( "font", getCSS(element, "fontVariant") + " " + bold + " " + getCSS(element, "fontStyle") + " " + getCSS(element, "fontSize") + " " + getCSS(element, "fontFamily") ); - - - if ( position === "inside" ) { - ctx.setVariable("textAlign", "left"); - // this.setFont(stack.ctx, element, false); - x = elBounds.left; - - }else{ - return; - /* - TODO really need to figure out some more accurate way to try and find the position. - as defined in http://www.w3.org/TR/CSS21/generate.html#propdef-list-style-position, it does not even have a specified "correct" position, so each browser - may display it whatever way it feels like. - "The position of the list-item marker adjacent to floats is undefined in CSS 2.1. CSS 2.1 does not specify the precise location of the marker box or its position in the painting order" - - ctx.setVariable("textAlign", "right"); - // this.setFont(stack.ctx, element, true); - x = elBounds.left - 10; - */ - } - - y = listBounds.bottom; - - drawText(text, x, y, ctx); - - - } - - - } - - function loadImage (src){ - var img = images[src]; - if (img && img.succeeded === true) { - return img.img; - } else { - return false; - } - } - - - - - - - function clipBounds(src, dst){ - - var x = Math.max(src.left, dst.left), - y = Math.max(src.top, dst.top), - x2 = Math.min((src.left + src.width), (dst.left + dst.width)), - y2 = Math.min((src.top + src.height), (dst.top + dst.height)); - - return { - left:x, - top:y, - width:x2-x, - height:y2-y - }; - - } - - function setZ(zIndex, parentZ){ - // TODO fix static elements overlapping relative/absolute elements under same stack, if they are defined after them - var newContext; - if (!parentZ){ - newContext = h2czContext(0); - return newContext; - } - - if (zIndex !== "auto"){ - needReorder = true; - newContext = h2czContext(zIndex); - parentZ.children.push(newContext); - return newContext; - - } - - return parentZ; - - } - - function renderBorders(el, ctx, bounds, clip){ - - /* - * TODO add support for different border-style's than solid - */ - - var x = bounds.left, - y = bounds.top, - w = bounds.width, - h = bounds.height, - borderSide, - borderData, - bx, - by, - bw, - bh, - borderBounds, - borders = (function(el){ - var borders = [], - sides = ["Top","Right","Bottom","Left"], - s; - - for (s = 0; s < 4; s+=1){ - borders.push({ - width: getCSSInt(el, 'border' + sides[s] + 'Width'), - color: getCSS(el, 'border' + sides[s] + 'Color') - }); - } - - return borders; - - }(el)); - - - for (borderSide = 0; borderSide < 4; borderSide+=1){ - borderData = borders[borderSide]; - - if (borderData.width>0){ - bx = x; - by = y; - bw = w; - bh = h - (borders[2].width); - - switch(borderSide){ - case 0: - // top border - bh = borders[0].width; - break; - case 1: - // right border - bx = x + w - (borders[1].width); - bw = borders[1].width; - break; - case 2: - // bottom border - by = (by + h) - (borders[2].width); - bh = borders[2].width; - break; - case 3: - // left border - bw = borders[3].width; - break; - } - - borderBounds = { - left:bx, - top:by, - width: bw, - height:bh - }; - - if (clip){ - borderBounds = clipBounds(borderBounds, clip); - } - - - if (borderBounds.width>0 && borderBounds.height>0){ - renderRect(ctx, bx, by, borderBounds.width, borderBounds.height, borderData.color); - } - - - } - } - - return borders; - - } - - - function renderFormValue (el, bounds, stack){ - - var valueWrap = doc.createElement('valuewrap'), - cssArr = ['lineHeight','textAlign','fontFamily','color','fontSize','paddingLeft','paddingTop','width','height','border','borderLeftWidth','borderTopWidth'], - i, - textValue, - textNode, - arrLen, - style; - - for (i = 0, arrLen = cssArr.length; i < arrLen; i+=1){ - style = cssArr[i]; - - try { - valueWrap.style[style] = getCSS(el, style); - } catch( e ) { - // Older IE has issues with "border" - h2clog("html2canvas: Parse: Exception caught in renderFormValue: " + e.message); - } - } - - - valueWrap.style.borderColor = "black"; - valueWrap.style.borderStyle = "solid"; - valueWrap.style.display = "block"; - valueWrap.style.position = "absolute"; - if (/^(submit|reset|button|text|password)$/.test(el.type) || el.nodeName === "SELECT"){ - valueWrap.style.lineHeight = getCSS(el, "height"); - } - - - valueWrap.style.top = bounds.top + "px"; - valueWrap.style.left = bounds.left + "px"; - - if (el.nodeName === "SELECT"){ - // TODO increase accuracy of text position - textValue = el.options[el.selectedIndex].text; - } else{ - textValue = el.value; - } - textNode = doc.createTextNode(textValue); - - valueWrap.appendChild(textNode); - body.appendChild(valueWrap); - - - renderText(el, textNode, stack); - body.removeChild(valueWrap); - - - - } - - - - - - function renderImage (ctx, image, sx, sy, sw, sh, dx, dy, dw, dh) { - ctx.drawImage( - image, - sx, //sx - sy, //sy - sw, //sw - sh, //sh - dx, //dx - dy, // dy - dw, //dw - dh //dh - ); - numDraws+=1; - - } - - - function renderBackgroundRepeat (ctx, image, x, y, width, height, elx, ely){ - var sourceX = 0, - sourceY=0; - if (elx-x>0){ - sourceX = elx-x; - } - - if (ely-y>0){ - sourceY = ely-y; - } - - renderImage( - ctx, - image, - sourceX, // source X - sourceY, // source Y - width-sourceX, // source Width - height-sourceY, // source Height - x+sourceX, // destination X - y+sourceY, // destination Y - width-sourceX, // destination width - height-sourceY // destination height - ); - } - - - function renderBackgroundRepeatY (ctx, image, bgp, x, y, w, h){ - - var height, - width = Math.min(image.width,w),bgy; - - bgp.top = bgp.top-Math.ceil(bgp.top/image.height)*image.height; - - - for(bgy=(y+bgp.top);bgyh+y){ - height = (h+y)-bgy; - }else{ - height = image.height; - } - renderBackgroundRepeat(ctx,image,x+bgp.left,bgy,width,height,x,y); - - bgy = Math.floor(bgy+image.height); - - } - } - - function renderBackgroundRepeatX(ctx, image, bgp, x, y, w, h){ - - var height = Math.min(image.height,h), - width,bgx; - - - bgp.left = bgp.left-Math.ceil(bgp.left/image.width)*image.width; - - - for (bgx=(x+bgp.left);bgxw+x){ - width = (w+x)-bgx; - }else{ - width = image.width; - } - - renderBackgroundRepeat(ctx,image,bgx,(y+bgp.top),width,height,x,y); - - bgx = Math.floor(bgx+image.width); - - - } - } - - function renderBackground(el,bounds,ctx){ - - // TODO add support for multi background-images - var background_image = getCSS(el, "backgroundImage"), - background_repeat = getCSS(el, "backgroundRepeat").split(",")[0], - image, - bgp, - bgy, - bgw, - bgsx, - bgsy, - bgdx, - bgdy, - bgh, - h, - height, - add; - - // if (typeof background_image !== "undefined" && /^(1|none)$/.test(background_image) === false && /^(-webkit|-moz|linear-gradient|-o-)/.test(background_image)===false){ - - if ( !/data:image\/.*;base64,/i.test(background_image) && !/^(-webkit|-moz|linear-gradient|-o-)/.test(background_image) ) { - background_image = background_image.split(",")[0]; - } - - if ( typeof background_image !== "undefined" && /^(1|none)$/.test( background_image ) === false ) { - background_image = _html2canvas.Util.backgroundImage( background_image ); - image = loadImage( background_image ); - - - bgp = _html2canvas.Util.BackgroundPosition(el, bounds, image); - - // TODO add support for background-origin - if ( image ){ - switch ( background_repeat ) { - - case "repeat-x": - renderBackgroundRepeatX( ctx, image, bgp, bounds.left, bounds.top, bounds.width, bounds.height ); - break; - - case "repeat-y": - renderBackgroundRepeatY( ctx, image, bgp, bounds.left, bounds.top, bounds.width, bounds.height ); - break; - - case "no-repeat": - /* - this.drawBackgroundRepeat( - ctx, - image, - bgp.left+bounds.left, // sx - bgp.top+bounds.top, // sy - Math.min(bounds.width,image.width), - Math.min(bounds.height,image.height), - bounds.left, - bounds.top - );*/ - - - - bgw = bounds.width - bgp.left; - bgh = bounds.height - bgp.top; - bgsx = bgp.left; - bgsy = bgp.top; - bgdx = bgp.left+bounds.left; - bgdy = bgp.top+bounds.top; - - // - // bgw = Math.min(bgw,image.width); - // bgh = Math.min(bgh,image.height); - - if (bgsx<0){ - bgsx = Math.abs(bgsx); - bgdx += bgsx; - bgw = Math.min(bounds.width,image.width-bgsx); - }else{ - bgw = Math.min(bgw,image.width); - bgsx = 0; - } - - if (bgsy<0){ - bgsy = Math.abs(bgsy); - bgdy += bgsy; - // bgh = bgh-bgsy; - bgh = Math.min(bounds.height,image.height-bgsy); - }else{ - bgh = Math.min(bgh,image.height); - bgsy = 0; - } - - - if (bgh>0 && bgw > 0){ - renderImage( - ctx, - image, - bgsx, // source X : 0 - bgsy, // source Y : 1695 - bgw, // source Width : 18 - bgh, // source Height : 1677 - bgdx, // destination X :906 - bgdy, // destination Y : 1020 - bgw, // destination width : 18 - bgh // destination height : 1677 - ); - - } - break; - default: - - - - bgp.top = bgp.top-Math.ceil(bgp.top/image.height)*image.height; - - - for(bgy=(bounds.top+bgp.top);bgyh+bgy){ - height = (h+bgy)-bgy; - }else{ - height = image.height; - } - // console.log(height); - - if (bgy0){ - bgp.top += add; - } - bgy = Math.floor(bgy+image.height)-add; - } - break; - - - } - }else{ - h2clog("html2canvas: Error loading background:" + background_image); - //console.log(images); - } - - } - } - - - - function renderElement(el, parentStack){ - - var bounds = _html2canvas.Util.Bounds(el), - x = bounds.left, - y = bounds.top, - w = bounds.width, - h = bounds.height, - image, - bgcolor = getCSS(el, "backgroundColor"), - cssPosition = getCSS(el, "position"), - zindex, - opacity = getCSS(el, "opacity"), - stack, - stackLength, - borders, - ctx, - bgbounds, - imgSrc, - paddingLeft, - paddingTop, - paddingRight, - paddingBottom; - - if (!parentStack){ - docDim = docSize(); - parentStack = { - opacity: 1 - }; - }else{ - docDim = {}; - } - - - //var zindex = this.formatZ(this.getCSS(el,"zIndex"),cssPosition,parentStack.zIndex,el.parentNode); - - zindex = setZ( getCSS( el, "zIndex"), parentStack.zIndex ); - - - - stack = { - ctx: h2cRenderContext( docDim.width || w , docDim.height || h ), - zIndex: zindex, - opacity: opacity * parentStack.opacity, - cssPosition: cssPosition - }; - - - - // TODO correct overflow for absolute content residing under a static position - - if (parentStack.clip){ - stack.clip = _html2canvas.Util.Extend( {}, parentStack.clip ); - //stack.clip = parentStack.clip; - // stack.clip.height = stack.clip.height - parentStack.borders[2].width; - } - - - if ( options.useOverflow === true && /(hidden|scroll|auto)/.test(getCSS(el, "overflow")) === true && /(BODY)/i.test(el.nodeName) === false ){ - if (stack.clip){ - stack.clip = clipBounds(stack.clip, bounds); - }else{ - stack.clip = bounds; - } - } - - - stackLength = zindex.children.push(stack); - - ctx = zindex.children[stackLength-1].ctx; - - ctx.setVariable("globalAlpha", stack.opacity); - - // draw element borders - borders = renderBorders(el, ctx, bounds, false); - stack.borders = borders; - - - // let's modify clip area for child elements, so borders dont get overwritten - - /* - if (stack.clip){ - stack.clip.width = stack.clip.width-(borders[1].width); - stack.clip.height = stack.clip.height-(borders[2].width); - } - */ - if (ignoreElementsRegExp.test(el.nodeName) && options.iframeDefault !== "transparent"){ - if (options.iframeDefault === "default"){ - bgcolor = "#efefef"; - }else{ - bgcolor = options.iframeDefault; - } - } - - // draw base element bgcolor - - bgbounds = { - left: x + borders[3].width, - top: y + borders[0].width, - width: w - (borders[1].width + borders[3].width), - height: h - (borders[0].width + borders[2].width) - }; - - //if (this.withinBounds(stack.clip,bgbounds)){ - - if (stack.clip){ - bgbounds = clipBounds(bgbounds, stack.clip); - - //} - - } - - - if (bgbounds.height > 0 && bgbounds.width > 0){ - renderRect( - ctx, - bgbounds.left, - bgbounds.top, - bgbounds.width, - bgbounds.height, - bgcolor - ); - - renderBackground(el, bgbounds, ctx); - } - - switch(el.nodeName){ - case "IMG": - imgSrc = el.getAttribute('src'); - image = loadImage(imgSrc); - if (image){ - - paddingLeft = getCSSInt(el, 'paddingLeft'); - paddingTop = getCSSInt(el, 'paddingTop'); - paddingRight = getCSSInt(el, 'paddingRight'); - paddingBottom = getCSSInt(el, 'paddingBottom'); - - - renderImage( - ctx, - image, - 0, //sx - 0, //sy - image.width, //sw - image.height, //sh - x + paddingLeft + borders[3].width, //dx - y + paddingTop + borders[0].width, // dy - bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw - bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh - ); - - }else{ - h2clog("html2canvas: Error loading :" + imgSrc); - } - break; - case "INPUT": - // TODO add all relevant type's, i.e. HTML5 new stuff - // todo add support for placeholder attribute for browsers which support it - if (/^(text|url|email|submit|button|reset)$/.test(el.type) && el.value.length > 0){ - - renderFormValue(el, bounds, stack); - - - /* - this just doesn't work well enough - - this.newText(el,{ - nodeValue:el.value, - splitText: function(){ - return this; - }, - formValue:true - },stack); - */ - } - break; - case "TEXTAREA": - if (el.value.length > 0){ - renderFormValue(el, bounds, stack); - } - break; - case "SELECT": - if (el.options.length > 0){ - renderFormValue(el, bounds, stack); - } - break; - case "LI": - renderListItem(el, stack, bgbounds); - break; - case "CANVAS": - paddingLeft = getCSSInt(el, 'paddingLeft'); - paddingTop = getCSSInt(el, 'paddingTop'); - paddingRight = getCSSInt(el, 'paddingRight'); - paddingBottom = getCSSInt(el, 'paddingBottom'); - renderImage( - ctx, - el, - 0, //sx - 0, //sy - el.width, //sw - el.height, //sh - x + paddingLeft + borders[3].width, //dx - y + paddingTop + borders[0].width, // dy - bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw - bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh - ); - break; - } - - return zindex.children[stackLength - 1]; - } - - - - function parseElement (el, stack) { - - // skip hidden elements and their children - if (getCSS(el, 'display') !== "none" && getCSS(el, 'visibility') !== "hidden") { - - stack = renderElement(el, stack) || stack; - - ctx = stack.ctx; - - if ( !ignoreElementsRegExp.test( el.nodeName ) ) { - var elementChildren = _html2canvas.Util.Children( el ), - i, - node, - childrenLen; - for (i = 0, childrenLen = elementChildren.length; i < childrenLen; i+=1) { - node = elementChildren[i]; - - if ( node.nodeType === 1 ) { - parseElement(node, stack); - }else if ( node.nodeType === 3 ) { - renderText(el, node, stack); - } - - } - - } - } - } - - stack = renderElement(element, null); - - /* - SVG powered HTML rendering, non-tainted canvas available from FF 11+ onwards - */ - - if ( support.svgRendering ) { - (function( body ){ - var img = new Image(), - size = docSize(), - html = ""; - - function parseDOM( el ) { - var children = _html2canvas.Util.Children( el ), - len = children.length, - attr, - a, - alen, - elm, - i; - for ( i = 0; i < len; i+=1 ) { - elm = children[ i ]; - if ( elm.nodeType === 3 ) { - // Text node - - html += elm.nodeValue.replace(/\/g,">"); - } else if ( elm.nodeType === 1 ) { - // Element - if ( !/^(script|meta|title)$/.test(elm.nodeName.toLowerCase()) ) { - - html += "<" + elm.nodeName.toLowerCase(); - - // add attributes - if ( elm.hasAttributes() ) { - attr = elm.attributes; - alen = attr.length; - for ( a = 0; a < alen; a+=1 ) { - html += " " + attr[ a ].name + '="' + attr[ a ].value + '"'; - } - } - - - html += '>'; - - parseDOM( elm ); - - - html += ""; - } - } - - } - - } - - parseDOM( body ); - img.src = [ - "data:image/svg+xml,", - "", - "", - "", - html.replace(/\#/g,"%23"), - "", - "", - "" - ].join(""); - - - - - img.onload = function() { - stack.svgRender = img; - }; - - })( document.documentElement ); - - } - - - // parse every child element - for (i = 0, children = element.children, childrenLen = children.length; i < childrenLen; i+=1){ - parseElement(children[i], stack); - } - - - stack.backgroundColor = getCSS( document.documentElement, "backgroundColor" ); - - return stack; - - }; - - function h2czContext(zindex) { - return { - zindex: zindex, - children: [] - }; - } - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - _html2canvas.Preload = function( options ) { - - var images = { - numLoaded: 0, // also failed are counted here - numFailed: 0, - numTotal: 0, - cleanupDone: false - }, - pageOrigin, - methods, - i, - count = 0, - element = options.elements[0] || document.body, - doc = element.ownerDocument, - domImages = doc.images, // TODO probably should limit it to images present in the element only - imgLen = domImages.length, - link = doc.createElement("a"), - supportCORS = (function( img ){ - return (img.crossOrigin !== undefined); - })(new Image()), - timeoutTimer; - - link.href = window.location.href; - pageOrigin = link.protocol + link.host; - - - - - - - function isSameOrigin(url){ - link.href = url; - link.href = link.href; // YES, BELIEVE IT OR NOT, that is required for IE9 - http://jsfiddle.net/niklasvh/2e48b/ - var origin = link.protocol + link.host; - return (origin === pageOrigin); - } - - function start(){ - h2clog("html2canvas: start: images: " + images.numLoaded + " / " + images.numTotal + " (failed: " + images.numFailed + ")"); - if (!images.firstRun && images.numLoaded >= images.numTotal){ - h2clog("Finished loading images: # " + images.numTotal + " (failed: " + images.numFailed + ")"); - - if (typeof options.complete === "function"){ - options.complete(images); - } - - } - } - - function getImages (el) { - - - - // if (!this.ignoreRe.test(el.nodeName)){ - // - - var contents = _html2canvas.Util.Children(el), - i, - background_image, - src, - img, - elNodeType = false; - - // Firefox fails with permission denied on pages with iframes - try { - var contentsLen = contents.length; - for (i = 0; i < contentsLen; i+=1 ){ - // var ignRe = new RegExp("("+this.ignoreElements+")"); - // if (!ignRe.test(element.nodeName)){ - getImages(contents[i]); - // } - } - } - catch( e ) {} - - - // } - try { - elNodeType = el.nodeType; - } catch (ex) { - elNodeType = false; - h2clog("html2canvas: failed to access some element's nodeType - Exception: " + ex.message); - } - - if (elNodeType === 1 || elNodeType === undefined){ - - // opera throws exception on external-content.html - try { - background_image = _html2canvas.Util.getCSS(el, 'backgroundImage'); - }catch(e) { - h2clog("html2canvas: failed to get background-image - Exception: " + e.message); - } - if ( background_image && background_image !== "1" && background_image !== "none" ) { - - // TODO add multi image background support - - if (/^(-webkit|-o|-moz|-ms|linear)-/.test( background_image )) { - - img = _html2canvas.Generate.Gradient( background_image, _html2canvas.Util.Bounds( el ) ); - - if ( img !== undefined ){ - images[background_image] = { - img: img, - succeeded: true - }; - images.numTotal++; - images.numLoaded++; - start(); - - } - - } else { - src = _html2canvas.Util.backgroundImage(background_image.match(/data:image\/.*;base64,/i) ? background_image : background_image.split(",")[0]); - methods.loadImage(src); - } - - /* - if (background_image && background_image !== "1" && background_image !== "none" && background_image.substring(0,7) !== "-webkit" && background_image.substring(0,3)!== "-o-" && background_image.substring(0,4) !== "-moz"){ - // TODO add multi image background support - src = _html2canvas.Util.backgroundImage(background_image.split(",")[0]); - methods.loadImage(src); */ - } - } - } - - function setImageLoadHandlers(img, imageObj) { - img.onload = function() { - if ( imageObj.timer !== undefined ) { - // CORS succeeded - window.clearTimeout( imageObj.timer ); - } - - images.numLoaded++; - imageObj.succeeded = true; - img.onerror = img.onload = null; - start(); - }; - img.onerror = function() { - - if (img.crossOrigin === "anonymous") { - // CORS failed - window.clearTimeout( imageObj.timer ); - } - - - images.numLoaded++; - images.numFailed++; - imageObj.succeeded = false; - img.onerror = img.onload = null; - start(); - - }; - - // TODO Opera has no load/error event for SVG images - - // Opera ninja onload's cached images - /* - window.setTimeout(function(){ - if ( img.width !== 0 && imageObj.succeeded === undefined ) { - img.onload(); - } - }, 100); // needs a reflow for base64 encoded images? interestingly timeout of 0 doesn't work but 1 does. - */ - } - - - methods = { - loadImage: function( src ) { - var img, imageObj; - if ( src && images[src] === undefined ) { - img = new Image(); - if ( src.match(/data:image\/.*;base64,/i) ) { - img.src = src.replace(/url\(['"]{0,}|['"]{0,}\)$/ig, ''); - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - } else if ( isSameOrigin( src ) || options.allowTaint === true ) { - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - img.src = src; - } else if ( supportCORS && !options.allowTaint && options.useCORS ) { - // attempt to load with CORS - - img.crossOrigin = "anonymous"; - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - img.src = src; - - // work around for https://bugs.webkit.org/show_bug.cgi?id=80028 - img.customComplete = function () { - if (!this.img.complete) { - this.timer = window.setTimeout(this.img.customComplete, 100); - } else { - this.img.onerror(); - } - }.bind(imageObj); - img.customComplete(); - } - } - - }, - cleanupDOM: function(cause) { - var img, src; - if (!images.cleanupDone) { - if (cause && typeof cause === "string") { - h2clog("html2canvas: Cleanup because: " + cause); - } else { - h2clog("html2canvas: Cleanup after timeout: " + options.timeout + " ms."); - } - - // cancel any pending requests - if(window.stop !== undefined) { - window.stop(); - } else if(document.execCommand !== undefined) { - document.execCommand("Stop", false); - } - if (document.close !== undefined) { - document.close(); - } - images.cleanupDone = true; - if (!(cause && typeof cause === "string")) { - start(); - } - } - }, - renderingDone: function() { - if (timeoutTimer) { - window.clearTimeout(timeoutTimer); - } - } - - }; - - if (options.timeout > 0) { - timeoutTimer = window.setTimeout(methods.cleanupDOM, options.timeout); - } - h2clog('html2canvas: Preload starts: finding background-images'); - images.firstRun = true; - - getImages( element ); - - h2clog('html2canvas: Preload: Finding images'); - // load images - for (i = 0; i < imgLen; i+=1){ - methods.loadImage( domImages[i].getAttribute( "src" ) ); - } - - images.firstRun = false; - h2clog('html2canvas: Preload: Done.'); - if ( images.numTotal === images.numLoaded ) { - start(); - } - - return methods; - - }; - - - - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - function h2cRenderContext(width, height) { - var storage = []; - return { - storage: storage, - width: width, - height: height, - fillRect: function () { - storage.push({ - type: "function", - name: "fillRect", - 'arguments': arguments - }); - }, - drawImage: function () { - storage.push({ - type: "function", - name: "drawImage", - 'arguments': arguments - }); - }, - fillText: function () { - storage.push({ - type: "function", - name: "fillText", - 'arguments': arguments - }); - }, - setVariable: function (variable, value) { - storage.push({ - type: "variable", - name: variable, - 'arguments': value - }); - } - }; - } - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - _html2canvas.Renderer = function(parseQueue, options){ - - - var queue = []; - - function sortZ(zStack){ - var subStacks = [], - stackValues = [], - zStackChildren = zStack.children, - s, - i, - stackLen, - zValue, - zLen, - stackChild, - b, - subStackLen; - - - for (s = 0, zLen = zStackChildren.length; s < zLen; s+=1){ - - stackChild = zStackChildren[s]; - - if (stackChild.children && stackChild.children.length > 0){ - subStacks.push(stackChild); - stackValues.push(stackChild.zindex); - }else{ - queue.push(stackChild); - } - - } - - stackValues.sort(function(a, b) { - return a - b; - }); - - for (i = 0, stackLen = stackValues.length; i < stackLen; i+=1){ - zValue = stackValues[i]; - for (b = 0, subStackLen = subStacks.length; b <= subStackLen; b+=1){ - - if (subStacks[b].zindex === zValue){ - stackChild = subStacks.splice(b, 1); - sortZ(stackChild[0]); - break; - - } - } - } - - } - - - sortZ(parseQueue.zIndex); - if ( typeof options._renderer._create !== "function" ) { - throw new Error("Invalid renderer defined"); - } - return options._renderer._create( parseQueue, options, document, queue, _html2canvas ); - - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - - html2canvas = function( elements, opts ) { - - var queue, - canvas, - options = { - // general - logging: false, - elements: elements, - - // preload options - timeout: 0, // no timeout - useCORS: false, // try to load images as CORS (where available) - allowTaint: false, // whether to allow images to taint the canvas - - // parse options - svgRendering: false, // use svg powered rendering where available (FF11+) - iframeDefault: "default", - ignoreElements: "IFRAME|OBJECT|PARAM", - useOverflow: true, - letterRendering: false, - - // render options - - flashcanvas: undefined, // path to flashcanvas - width: null, - height: null, - taintTest: true, // do a taint test with all images before applying to canvas - renderer: "Canvas" - }, renderer; - - options = _html2canvas.Util.Extend(opts, options); - - if (typeof options.renderer === "string" && _html2canvas.Renderer[options.renderer] !== undefined) { - options._renderer = _html2canvas.Renderer[options.renderer]( options ); - } else if (typeof options.renderer === "function") { - options._renderer = options.renderer( options ); - } else { - throw("Unknown renderer"); - } - - _html2canvas.logging = options.logging; - options.complete = function( images ) { - - if (typeof options.onpreloaded === "function") { - if ( options.onpreloaded( images ) === false ) { - return; - } - } - queue = _html2canvas.Parse( images, options ); - - if (typeof options.onparsed === "function") { - if ( options.onparsed( queue ) === false ) { - return; - } - } - - canvas = _html2canvas.Renderer( queue, options ); - - if (typeof options.onrendered === "function") { - options.onrendered( canvas ); - } - - - }; - - // for pages without images, we still want this to be async, i.e. return methods before executing - window.setTimeout( function(){ - _html2canvas.Preload( options ); - }, 0 ); - - return { - render: function( queue, opts ) { - return _html2canvas.Renderer( queue, _html2canvas.Util.Extend(opts, options) ); - }, - parse: function( images, opts ) { - return _html2canvas.Parse( images, _html2canvas.Util.Extend(opts, options) ); - }, - preload: function( opts ) { - return _html2canvas.Preload( _html2canvas.Util.Extend(opts, options) ); - }, - log: h2clog - }; - }; - - html2canvas.log = h2clog; // for renderers - html2canvas.Renderer = { - Canvas: undefined // We are assuming this will be used - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - - _html2canvas.Renderer.Canvas = function( options ) { - - options = options || {}; - - var doc = document, - canvas = options.canvas || doc.createElement('canvas'), - usingFlashcanvas = false, - _createCalled = false, - canvasReadyToDraw = false, - methods, - flashMaxSize = 2880; // flash bitmap limited to 2880x2880px // http://stackoverflow.com/questions/2033792/argumenterror-error-2015-invalid-bitmapdata - - - if (canvas.getContext){ - h2clog("html2canvas: Renderer: using canvas renderer"); - canvasReadyToDraw = true; - } else if ( options.flashcanvas !== undefined ){ - usingFlashcanvas = true; - h2clog("html2canvas: Renderer: canvas not available, using flashcanvas"); - var script = doc.createElement("script"); - script.src = options.flashcanvas; - - script.onload = (function(script, func){ - var intervalFunc; - - if (script.onload === undefined) { - // IE lack of support for script onload - - if( script.onreadystatechange !== undefined ) { - - intervalFunc = function() { - if (script.readyState !== "loaded" && script.readyState !== "complete") { - window.setTimeout( intervalFunc, 250 ); - - } else { - // it is loaded - func(); - - } - - }; - - window.setTimeout( intervalFunc, 250 ); - - } else { - h2clog("html2canvas: Renderer: Can't track when flashcanvas is loaded"); - } - - } else { - return func; - } - - })(script, function(){ - - if (typeof window.FlashCanvas !== "undefined") { - h2clog("html2canvas: Renderer: Flashcanvas initialized"); - window.FlashCanvas.initElement( canvas ); - - canvasReadyToDraw = true; - if ( _createCalled !== false ) { - methods._create.apply( null, _createCalled ); - } - } - }); - - doc.body.appendChild( script ); - - } - - methods = { - _create: function( zStack, options, doc, queue, _html2canvas ) { - - if ( !canvasReadyToDraw ) { - _createCalled = arguments; - return canvas; - } - - var ctx = canvas.getContext("2d"), - storageContext, - i, - queueLen, - a, - newCanvas, - bounds, - testCanvas = document.createElement("canvas"), - hasCTX = ( testCanvas.getContext !== undefined ), - storageLen, - renderItem, - testctx = ( hasCTX ) ? testCanvas.getContext("2d") : {}, - safeImages = [], - fstyle; - - canvas.width = canvas.style.width = (!usingFlashcanvas) ? options.width || zStack.ctx.width : Math.min(flashMaxSize, (options.width || zStack.ctx.width) ); - canvas.height = canvas.style.height = (!usingFlashcanvas) ? options.height || zStack.ctx.height : Math.min(flashMaxSize, (options.height || zStack.ctx.height) ); - - fstyle = ctx.fillStyle; - ctx.fillStyle = zStack.backgroundColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.fillStyle = fstyle; - - if ( options.svgRendering && zStack.svgRender !== undefined ) { - // TODO: enable async rendering to support this - ctx.drawImage( zStack.svgRender, 0, 0 ); - } else { - for ( i = 0, queueLen = queue.length; i < queueLen; i+=1 ) { - - storageContext = queue.splice(0, 1)[0]; - storageContext.canvasPosition = storageContext.canvasPosition || {}; - - //this.canvasRenderContext(storageContext,parentctx); - - // set common settings for canvas - ctx.textBaseline = "bottom"; - - if (storageContext.clip){ - ctx.save(); - ctx.beginPath(); - // console.log(storageContext); - ctx.rect(storageContext.clip.left, storageContext.clip.top, storageContext.clip.width, storageContext.clip.height); - ctx.clip(); - - } - - if (storageContext.ctx.storage){ - - for (a = 0, storageLen = storageContext.ctx.storage.length; a < storageLen; a+=1){ - - renderItem = storageContext.ctx.storage[a]; - - - switch(renderItem.type){ - case "variable": - ctx[renderItem.name] = renderItem['arguments']; - break; - case "function": - if (renderItem.name === "fillRect") { - - if (!usingFlashcanvas || renderItem['arguments'][0] + renderItem['arguments'][2] < flashMaxSize && renderItem['arguments'][1] + renderItem['arguments'][3] < flashMaxSize) { - ctx.fillRect.apply( ctx, renderItem['arguments'] ); - } - }else if(renderItem.name === "fillText") { - if (!usingFlashcanvas || renderItem['arguments'][1] < flashMaxSize && renderItem['arguments'][2] < flashMaxSize) { - ctx.fillText.apply( ctx, renderItem['arguments'] ); - } - }else if(renderItem.name === "drawImage") { - - if (renderItem['arguments'][8] > 0 && renderItem['arguments'][7]){ - if ( hasCTX && options.taintTest ) { - if ( safeImages.indexOf( renderItem['arguments'][ 0 ].src ) === -1 ) { - testctx.drawImage( renderItem['arguments'][ 0 ], 0, 0 ); - try { - testctx.getImageData( 0, 0, 1, 1 ); - } catch(e) { - testCanvas = doc.createElement("canvas"); - testctx = testCanvas.getContext("2d"); - continue; - } - - safeImages.push( renderItem['arguments'][ 0 ].src ); - - } - } - ctx.drawImage.apply( ctx, renderItem['arguments'] ); - } - } - - - break; - default: - - } - - } - - } - if (storageContext.clip){ - ctx.restore(); - } - - } - } - - h2clog("html2canvas: Renderer: Canvas renderer done - returning canvas obj"); - - queueLen = options.elements.length; - - if (queueLen === 1) { - if (typeof options.elements[ 0 ] === "object" && options.elements[ 0 ].nodeName !== "BODY" && usingFlashcanvas === false) { - // crop image to the bounds of selected (single) element - bounds = _html2canvas.Util.Bounds( options.elements[ 0 ] ); - newCanvas = doc.createElement('canvas'); - newCanvas.width = bounds.width; - newCanvas.height = bounds.height; - ctx = newCanvas.getContext("2d"); - - ctx.drawImage( canvas, bounds.left, bounds.top, bounds.width, bounds.height, 0, 0, bounds.width, bounds.height ); - canvas = null; - return newCanvas; - } - } /*else { - // TODO clip and resize multiple elements - - for ( i = 0; i < queueLen; i+=1 ) { - if (options.elements[ i ] instanceof Element) { - - } - - } - } - */ - - - - return canvas; - } - }; - - return methods; - - }; - - window.html2canvas = html2canvas; - }(window, document)); - \ No newline at end of file diff --git a/_site/assets/js/hamburger.js b/_site/assets/js/hamburger.js new file mode 100644 index 0000000..b032ce5 --- /dev/null +++ b/_site/assets/js/hamburger.js @@ -0,0 +1,5 @@ +function toggleNav() { + var nav = document.querySelector('nav ul'); + nav.style.left = nav.style.left === '0px' ? '-100%' : '0px'; + } + \ No newline at end of file diff --git a/_site/feed.xml b/_site/feed.xml index ef367d3..e7ade96 100644 --- a/_site/feed.xml +++ b/_site/feed.xml @@ -1,4 +1,4 @@ -Jekyll2023-08-18T16:35:01+08:00http://localhost:4000/feed.xmlRare DigitsCoding Senses, Building WorldWelcome to Jekyll!2023-08-17T16:17:18+08:002023-08-17T16:17:18+08:00http://localhost:4000/jekyll/update/welcome-to-jekyllYou’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

+Jekyll2024-02-07T12:00:10+08:00http://localhost:4000/feed.xmlRare DigitsCoding Senses, Building WorldWelcome to Jekyll!2023-08-17T16:17:18+08:002023-08-17T16:17:18+08:00http://localhost:4000/jekyll/update/welcome-to-jekyllYou’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

Jekyll requires blog post files to be named according to the following format:

diff --git a/_site/index.html b/_site/index.html index 992b5f6..63ad5ca 100644 --- a/_site/index.html +++ b/_site/index.html @@ -9,32 +9,55 @@ + - +
- - Book Demo + + +
Book Demo
-

Elegance in Software -
Expertise in Action

-

Where mastery in software engineering
- converges with transformative user experience

+

Elegant Exteriors,
Brutal Internal

+

+ Software that’s easy to use + and powerful under the hood, + perfectly blending design + with functionality +

+

+ Nice to meet you >> +

Simplicity in Every Solution

- Navigate the future of business with Rare Digits +

Navigate the future of business
+ with Rare Digits

@@ -161,18 +184,55 @@

+ \ No newline at end of file diff --git a/about/design.md b/about/design.md new file mode 100644 index 0000000..7ab3030 --- /dev/null +++ b/about/design.md @@ -0,0 +1,9 @@ +### Main Page Content for Rare Digits Production Website + +--- + +#### Headline: +"Elegant Exteriors, Brutal Internals" + + +Rare Digits Production stands at the intersection of aesthetic refinement and technical prowess. Our development philosophy is built on a fundamental understanding of our users, ensuring each application we create - from robust ERP and CRM systems to bespoke accounting and logistics forecasting tools - is both visually appealing and mercilessly effective. We specialize in blending elegant exteriors with brutal internals, crafting solutions that not only meet but exceed business needs. Welcome to a realm where software is designed to be as powerful on the inside as it is graceful on the outside. \ No newline at end of file diff --git a/assets/css/mobile.css b/assets/css/mobile.css new file mode 100644 index 0000000..03c2078 --- /dev/null +++ b/assets/css/mobile.css @@ -0,0 +1,170 @@ +@media screen and (max-width: 768px) { + body { + font-size: 14px; + } + + header { + padding: 10px; + } + + .logo { + margin: 10px 5px; + } + + nav { + width: fit-content; + } + + .hamburger { + display: block; + padding-top: 11px; + height: 100%; + } + + nav ul { + position: fixed; + width: 100%; + height: 100vh; + top: 0; + left: -100%; + background-image: url(/assets/img/home-bg.jpg); + background-attachment: fixed; + background-size: cover; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + transition: left 0.3s; + z-index: 100; + } + + nav ul li { + margin: 10px 0; + width: 100%; + padding: 10px 0; + } + + nav ul li a { + font-size: 32px; + color: white; + border-bottom: none; + } + + nav ul li:hover, nav ul li:hover a, nav ul li a:hover{ + font-family: 'Restora'; + font-size: 32px; + background-color: #00ff4e; + color: #fff; + border: none; + } + + nav ul .close { + display: block; + font-size: 3.2em; + padding-left: 90%; + } + + header .button { + margin: auto 5px; + border-radius: 20px; + } + + section { + padding: 30px 10px; + margin: 5px auto; + } + + h1 { + font-size: 24px; + line-height: 25px; + } + + h2 { + line-height: 1em; + } + + .sectionFirst { + min-height: 62vh; + } + + .helloWorld { + width: 100%; + font-size: 14px; + line-height: 16px; + padding: 0 18px; + bottom: 10px; + } + + .solutionsText { + padding: 0; + font-size: 1em; + } + + .solutionAccount, .solutionIntergation, .solutionSales, .solutionLogistics, .solutionConsulting { + width: 100%; + margin: 0 0 10px 0; + } + + .oneApp, .Apps, .appStore { + min-height: fit-content; + height: fit-content; + } + + .oneAppWrapper { + flex-flow: column; + height: fit-content; + } + + .oneAppPhone { + width: 100%; + height: 700px; + background-position: center; + background-size:cover; + } + + .oneAppText { + width: 100%; + text-align: center; + padding: 30px 30px 0; + } + + .sleep { + display: none; + } + + .appStore { + flex-flow: row wrap; + } + + .app { + width: 48%; + } + + .demoRequest { + width: 100%; + } + + footer { + width: 100%; + flex-flow: column nowrap; + } + + .footerSence { + width: 100%; + flex-flow: row wrap; + } + + .footerSence div { + width: 50%; + margin-bottom: 25px; + } + + .copyright { + order: 5; + width: 100% !important; + } + + .contacts { + text-align: left; + } +} \ No newline at end of file diff --git a/assets/css/styles.css b/assets/css/styles.css index fdeb7c7..d4f2ea2 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -1,8 +1,3 @@ -@font-face { - font-family: 'Gemsbuck01Black'; - src: url('../fonts/Gemsbuck01Black.woff'); -} - * { -webkit-locale: auto; padding: 0; @@ -16,9 +11,9 @@ html, body { } body { - font-family: 'Bai Jamjuree', 'Ubuntu', sans-serif; - font-size: 18px; - line-height: 28px; + font-family: 'Courier Prime', monospace; + font-size: 15px; + line-height: 23px; font-weight: 400; -webkit-font-smoothing: antialiased; color: #fff; @@ -31,22 +26,47 @@ body { background-size: cover; } -a { - color: #fff; +@font-face { + font-family: 'Restora'; + src: url('/assets/font/Restora.otf') format('opentype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Restora'; + src: url('/assets/font/RestoraBold.otf') format('opentype'); + font-weight: bold; + font-style: normal; + font-display: swap; } h1, h2 { - font-family: 'Gemsbuck01Black'; + font-family: 'Restora', serif; + font-weight: bold; margin: 0; } +a { + color: #00ff4e; + text-decoration: none; + border-bottom: .5px solid #00ff4e; +} + +a:hover { + color: #fff; + font-weight: 900; +} + h1 { font-size: 36px; line-height: 38px; } -.code { - font-family: monospace; +h2 { + font-size: 32px; + line-height: 36px; } /* HEADER */ @@ -57,28 +77,103 @@ header { justify-content: space-between; background: #000; margin: 10px auto; - padding: 25px; + border-bottom: 4px solid #00ff4e; } .logo { - height: 26px; + height: 35px; + margin: 25px; } -.booking { - background-color: #fff; +nav { + height: 100%; + width: 50%; +} + +nav ul { + height: 100%; + display: flex; + flex-flow: row nowrap; + list-style: none; + margin: 0; + padding: 0; +} + +nav ul li { + margin: auto; + display: flex; + align-items: center; + justify-content: center; + margin: 0; + padding: 0 20px; + width: 20%; +} + +nav ul li a { + display: block; + font-size: 16px; + font-weight: 900; + text-align: center; + transition: background-color 0.3s ease; + color: #fff; + border-bottom: .5px solid #fff; +} + +nav ul li:hover, nav ul li:hover a, nav ul li a:hover{ + font-family: 'Restora'; + font-size: 15px; + background-color: #00ff4e; color: #000; - padding: 5px 15px; border: none; +} + +header .button { + margin: auto 25px; +} + +.hamburger { + display: none; + cursor: pointer; +} + +.hamburger div { + width: 30px; + height: 3px; + background-color: #fff; + margin: 6px 0; + transition: 0.4s; +} + +.hamburger:hover div { + background-color: #00ff4e; +} + +nav ul .close { + display: none; + position: absolute; + top: 0; + right: 0; + padding: 20px; + font-size: 30px; + color: white; + } + + +.button { + display: block; + padding: 6px 16px 3px; cursor: pointer; font-size: 16px; - font-weight: 900; - border-radius: 15px; text-decoration: none; + border: 2px solid #00ff4e; + border-radius: 2px; + height: fit-content; } -.booking:hover { - background-color: #666; - color: #fff; +.button:hover { + background-color: #00ff4e; + border: 1px solid #fff; + color: #000; } .booking:active { @@ -88,6 +183,10 @@ header { /* BODY */ +.bold { + font-weight: 900; +} + section { width: 95%; margin: 15px auto; @@ -97,6 +196,10 @@ section { text-align: center; } +section h1 { + margin-bottom: 30px; +} + section p { font-size: 1.2em; margin-top: 10px; @@ -112,10 +215,10 @@ section p { .helloWorld { position: absolute; - width: 60%; + width: 45%; text-align: right; right: 0; - bottom: 0; + bottom: 100px; padding: 20px 40px; } @@ -202,7 +305,6 @@ section p { } .solutionsText { - font-size: 1.2em; padding: 0 100px; } @@ -347,132 +449,43 @@ footer { background: #000000; margin: 10px auto; padding: 25px; + font-size: 14px; } -.slogan { - font-family: 'Gemsbuck01Black'; - font-size: 14px; - text-align: left; - text-transform: uppercase; +footer a { + color: #fff; + text-decoration: none; + border-bottom: .5px solid #fff; } -.contacts { - font-size: 14px; - line-height: 18px; +footer a:hover { + color: #00ff4e; + font-weight: 900; + border-bottom: .5px solid #00ff4e; } -.links { - text-align: right; - line-height: 18px; +.footerSence { + display: flex; + flex-flow: row nowrap; +} + +.copyright, .links { + padding-right: 50px; } .copyright { - font-size: 14px; - text-align: right; + width: 20%; } +.footerSence ul { + list-style: none; + padding: 0; + margin: 0; +} -/* CAROUSEL */ - - -/* MOBILE */ -@media (max-width: 900px) { - body { - font-size: 14px; - } - - header { - padding: 10px; - } - - .logo { - padding-top: 3px; - } - - .booking { - font-size: 15px; - padding: 2px 10px; - } - - section { - padding: 30px 10px; - margin: 5px auto; - } - - h1 { - font-size: 24px; - line-height: 25px; - } - - h2 { - line-height: 1em; - } - - .sectionFirst { - min-height: 62vh; - } - - .helloWorld { - width: 100%; - font-size: 14px; - line-height: 16px; - padding: 0 18px; - } - - .solutionsText { - padding: 0; - font-size: 1em; - } - - .solutionAccount, .solutionIntergation, .solutionSales, .solutionLogistics, .solutionConsulting { - width: 100%; - margin: 0 0 10px 0; - } - - .oneApp, .Apps, .appStore { - min-height: fit-content; - height: fit-content; - } - - .oneAppWrapper { - flex-flow: column; - height: fit-content; - } - - .oneAppPhone { - width: 100%; - height: 700px; - background-position: center; - background-size:cover; - } - - .oneAppText { - width: 100%; - text-align: center; - padding: 30px 30px 0; - } - - .sleep { - display: none; - } - - .appStore { - flex-flow: row wrap; - } - - .app { - width: 48%; - } - - .demoRequest { - width: 100%; - } - - footer { - width: 100%; - } - - .slogan { - display: none; - } + +.contacts { + font-size: 14px; + line-height: 18px; + text-align: right; } \ No newline at end of file diff --git a/assets/font/Restora.otf b/assets/font/Restora.otf new file mode 100644 index 0000000000000000000000000000000000000000..822447ddcf70f521506ea23b2a779496abe5bdba GIT binary patch literal 156404 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 literal 0 HcmV?d00001 diff --git a/assets/font/RestoraBold.otf b/assets/font/RestoraBold.otf new file mode 100644 index 0000000000000000000000000000000000000000..752ff01f208084001256e2a731b4761972f48fd7 GIT binary patch literal 158052 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/Gemsbuck01Black.woff b/assets/fonts/Gemsbuck01Black.woff deleted file mode 100644 index 3ba11270b5ed71ccaa774f668c6887351e0a91a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3828 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 A1ONa4 diff --git a/assets/img/Rare_logo.svg b/assets/img/common/rare_logo.svg similarity index 100% rename from assets/img/Rare_logo.svg rename to assets/img/common/rare_logo.svg diff --git a/assets/img/common/rare_logo_black_full.svg b/assets/img/common/rare_logo_black_full.svg new file mode 100644 index 0000000..b5f2419 --- /dev/null +++ b/assets/img/common/rare_logo_black_full.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js/glitch/glitch-cxecute.js b/assets/js/glitch/glitch-cxecute.js deleted file mode 100644 index 3f6c78e..0000000 --- a/assets/js/glitch/glitch-cxecute.js +++ /dev/null @@ -1,89 +0,0 @@ -//================================================================================================= GLITCH - -function getRandomInt (min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; -} - -glitch_exec = { - /* Global config settings */ - NR_OF_GLITCHED_CANVASES : 7, - GLITCH_RENDER_COUNT : 0, /* 0 or negative == glitch indefinitely ; > 0 == glich & few times and stop */ - GLITCH_INTERVAL_PROGRESSIVE : 1, - GLITCH_INTERVAL_MIN : 500, /* millisecs */ - GLITCH_INTERVAL_MAX : 1500, /* millisecs */ - DELAY_BETWEEN_FRAMES : 30, /* 30 milisecs delay */ - DELAY_BETWEEN_GLITCHES : 0, - GLITCH_REFRESH_FRAMES_INTERVAL : 1, /* refresh glitched frames after N glitches ; 0 disables this */ - - /* From here on, it's just internal stuff */ - - refresh_glitch_frames_counter : 0, - rendered_canvases : 0, - times_rendered : 0, - glitched_canvases : Array(), - curr_canvas : null, - - __state_machine: function(gl) { - var otg = gl.object_to_glitch; - - /* If we need to render only a few times and stop, return here */ - if (gl.GLITCH_RENDER_COUNT > 0 && gl.times_rendered >= gl.GLITCH_RENDER_COUNT) { - if (typeof gl.done_callback == "function") - gl.done_callback(); - return; - } - - if (gl.curr_canvas != null) { - otg.removeChild(gl.curr_canvas); - } - if ((0 < gl.glitched_canvases.length) && (gl.rendered_canvases < gl.glitched_canvases.length)) { - gl.curr_canvas = gl.glitched_canvases[gl.rendered_canvases]; - otg.insertBefore(gl.curr_canvas, otg.firstChild); - gl.rendered_canvases++; - setTimeout(function() { gl.__state_machine(gl) }, gl.DELAY_BETWEEN_FRAMES); - } else { - if (gl.GLITCH_RENDER_COUNT > 0 && gl.rendered_canvases >= gl.glitched_canvases.length) - gl.times_rendered ++; - gl.rendered_canvases = 0; - if (gl.DELAY_BETWEEN_GLITCHES > 0) - setTimeout(function() { gl.__state_machine(gl) }, gl.DELAY_BETWEEN_GLITCHES); - else if (gl.GLITCH_INTERVAL_PROGRESSIVE && gl.GLITCH_RENDER_COUNT > 0) - setTimeout(function() { gl.__state_machine(gl) }, gl.times_rendered * getRandomInt(500, 1500)); - else - setTimeout(function() { gl.__state_machine(gl) }, getRandomInt(gl.GLITCH_INTERVAL_MIN, gl.GLITCH_INTERVAL_MAX)); - gl.curr_canvas = null; - - if (gl.GLITCH_REFRESH_FRAMES_INTERVAL > 0 && --gl.refresh_glitch_frames_counter <= 0) { - gl.glitch_frames(); - gl.refresh_glitch_frames_counter = gl.GLITCH_REFRESH_FRAMES_INTERVAL; - } - } - }, - - glitch_frames : function() { - var gl = this; - gl.glitched_canvases = Array(); - for(var i = 0; i < gl.NR_OF_GLITCHED_CANVASES; ++i) { - glitch(gl.object_to_glitch, { - amount: i, - complete: function(canvas) { - var otg = gl.object_to_glitch; - gl.glitched_canvases.push(canvas); - canvas.style.position = "absolute"; - canvas.style.top = otg.top; - canvas.style.left = otg.left; - } - }); - } - }, - - start: function(obj_to_glitch) { - var gl = this; - gl.object_to_glitch = obj_to_glitch; - gl.glitch_frames(); - gl.__state_machine(gl); - } - -}; - -//================================================================================================= END \ No newline at end of file diff --git a/assets/js/glitch/glitch-lib.js b/assets/js/glitch/glitch-lib.js deleted file mode 100644 index bd065f6..0000000 --- a/assets/js/glitch/glitch-lib.js +++ /dev/null @@ -1,391 +0,0 @@ -/** - @license glitch.js v0.1 - Released under MIT License - - Copyright (c) 2012 Simon Hewitt. - http://www.twitter.com/sjhewitt - */ - (function($){ - /*global html2canvas */ - - var noop = function(){}, - /** - * Set default properties on an object - * @param {Object} obj The target object - * @param {Object} defaults The default properties - * @return {Object} The target obj - */ - defaults = function(obj, defaults) { - for (var prop in defaults) { - if (obj[prop] == null) - obj[prop] = defaults[prop]; - } - return obj; - }, - /** - * Generates an integer between min and max - * - * @param {Number} min The lower bound - * @param {Number} max The upper bound - * @return {Number} A random number - */ - getRandInt = function(min, max) { - return (Math.floor(Math.random() * (max - min) + min)); - }; - - - /** - * Apply the glitch effect to a canvas object - * - * @param {HTMLCanvasElement} canvas The canvas (or HTMLImageElement) to apply the glitch to - * @param {number} amount The amount to glitch the canvas (default: 6) - * @return {HTMLCanvasElement} A canvas containing a glitched version - * of the original canvas - */ - var _glitch = function(canvas, amount) { - var - // cache the width and height of the canvas locally - x, y, w = canvas.width, h = canvas.height, - - // _len is an iterator limit, initially storing the number of slices - // to create - i, _len = amount || 6, - - // pick a random amount to offset the color channel - channelOffset = (getRandInt(-_len*2, _len*2) * w * + getRandInt(-_len, _len)) * 4, - - // the maximum amount to offset a chunk of the image is a function of its width - maxOffset = _len * _len / 100 * w, - - // vars for the width and height of the chunk that gets offset - chunkWidth, chunkHeight, - - // create a temporary canvas to hold the image we're working on - tempCanvas = document.createElement("canvas"), - tempCtx = tempCanvas.getContext("2d"), - - srcData, targetImageData, data; - - // set the dimensions of the working canvas - tempCanvas.width = w; - tempCanvas.height = h; - - // draw the initial image onto the working canvas - tempCtx.drawImage(canvas, 0, 0, w, h); - - // store the data of the original image for use when offsetting a channel - srcData = tempCtx.getImageData(0, 0, w, h).data; - - // randomly offset slices horizontally - for (i = 0; i < _len; i++) { - - // pick a random y coordinate to slice at - y = getRandInt(0, h); - - // pick a random height of the slice - chunkHeight = Math.min(getRandInt(1, h / 4), h - y); - - // pick a random horizontal distance to offset the slice - x = getRandInt(1, maxOffset); - chunkWidth = w - x; - - // draw the first chunk - tempCtx.drawImage(canvas, - 0, y, chunkWidth, chunkHeight, - x, y, chunkWidth, chunkHeight); - - // draw the rest - tempCtx.drawImage(canvas, - chunkWidth, y, x, chunkHeight, - 0, y, x, chunkHeight); - } - - // get hold of the ImageData for the working image - targetImageData = tempCtx.getImageData(0, 0, w, h); - - // and get a local reference to the rgba data array - data = targetImageData.data; - - // Copy a random color channel from the original image into - // the working canvas, offsetting it by a random amount - // - // ImageData arrays are a single dimension array that contains - // 4 values for each pixel. - // so, by initializing `i` to a random number between 0 and 2, - // and incrementing by 4 on each iteration, we can replace only - // a single channel in the image - for(i = getRandInt(0, 3), _len = srcData.length; i < _len; i += 4) { - data[i+channelOffset] = srcData[i]; - } - - // Make the image brighter by doubling the rgb values - for(i = 0; i < _len; i++) { - data[i++] *= 2; - data[i++] *= 2; - data[i++] *= 2; - } - - // TODO: The above loops are the most costly in this function, iterating - // over all the pixels in the image twice. - // It maybe possible to optimize this by combining both loops into one, - // and only processing every other line, as alternate lines are replaced - // with black in the 'scan lines' block belop - - // copy the tweaked ImageData back into the context - tempCtx.putImageData(targetImageData, 0, 0); - - // add scan lines - tempCtx.fillStyle = "rgb(0,0,0)"; - for (i = 0; i < h; i += 2) { - tempCtx.fillRect (0, i, w, 1); - } - - return tempCanvas; - }; - - /** - * Creates a canvas containing a glitched version of the element - * @param {DOMElement} el The element to glitch - * @param {Object} options An object containing the complete callback, - * the amount to glitch the image, and any - * html2canvas options - */ - var glitch = function(el, options) { - options = defaults(options || {}, { - // the amount to glitch the image - amount: 6, - // a callback that takes the glitched canvas as its only argument - complete: noop - }); - - // callback for when the element has been rendered - options.onrendered = function(canvas) { - options.complete(_glitch(canvas, options.amount)); - }; - - // render the element onto a canvas - html2canvas(el[0] ? el : [el], options); - }; - - /** - * Replace el with a glitched version of it - * @param {DOMElement} el The element to glitch - * @param {Object} options An object containing the options for glitch - */ - glitch.replace = function(el, options) { - options = options || {}; - // store a reference to the complete callback so we can use the same - // options for the glitch function call - var _complete = options.complete; - options.complete = function(canvas) { - if($ && el instanceof $) { - el.after(canvas).detach(); - } else { - // no jQuery... - el.parentNode.insertBefore(canvas, el); - el.parentNode.removeChild(el); - } - if(_complete){ - _complete(); - } - }; - - glitch(el, options); - }; - - /** - * Replace `el` with `newEl` by overlaying a glitched version of `el`, then - * animating it out to reveal `newEl` - * - * The animation will take into account elements of different sizes by sliding - * the container to reveal it, however it looks best if the elements to be - * transitioned between are of similar sizes - * - * @param {jQuery} el The original element that will be glitched - * @param {jQuery} newEl The element to show - * @param {Object} options An object containing the options for the animation - * and any options for html2canvas - */ - glitch.transition = function(el, newEl, options) { - // set the default options - options = defaults(options || {}, { - // the amount to glitch the image - amount: 6, - // A callback when the animation is complete - complete: noop, - // The delay after rendering the glitched element until starting the transition - delay: 300, - // The duration of the transition effect - duration: 500, - // The z-index to apply to the overlay. You might need to tweak this if - // you have things that appear above the element, or are using high - // z-indexes in your page - zIndex: 1000, - // the transition effect to use. This may be "fade" or "slide" - effect: "fade", - // The size of the top border. Set to 0 to disable, only used in slide mode - borderSize: 2, - // The color of the top border, only used in slide mode - borderColor: "green" - }); - - // add the new element to the dom so we can properly calculate its dimensions - newEl.insertAfter(el); - - // store a reference to the complete callback so we can use the same - // options for the glitch function call - var _complete = options.complete, - // get the dimensions of the elements so we can resize the targetContainer - // to reveal all the content after the glitch transition - origHeight = el.outerHeight(true), - origWidth = el.outerWidth(true), - targetHeight = newEl.outerHeight(true), - targetWidth = newEl.outerWidth(true), - origOverflow = newEl.css("overflow"); - - // take the new element out of the dom again - newEl.detach(); - - // create a callback that will - options.complete = function(canvas){ - // position the canvas absolutely within the container - var $canvas = $(canvas).css("position", "absolute"), - offset = el.offset(), - // create a container element that contains the canvas and position it - // over the element we're replacing - container = $("
").css({ - "border-top": options.borderSize ? options.borderSize + "px solid " + - options.borderColor : "none", - position: "absolute", - left: offset.left, - top: offset.top - options.borderSize, - width: canvas.width, - height: canvas.height, - overflow: "hidden", - "z-index": options.zIndex - }) - // add the canvas as a child to the container - .html(canvas) - // add the container to the dom - .appendTo("body") - // delay the animation a bit - .delay(options.delay), - - targetContainer = $("
").css({ - width: origWidth, - height: origHeight, - overflow: "hidden", - border: "none", - "box-sizing": "border-box" - }) - .html(newEl), - - // the default transition effect is to fade out - animation = { - opacity: 0 - }, - animateOptions = { - duration: options.duration, - complete: function(){ - // when the animation is done: - // remove the container from the dom - container.remove(); - - // then animate the height of the new element back to its measured - // height and width - targetContainer.animate({ - height: targetHeight, - width: targetWidth - }, - { - duration: 100, - complete: function(){ - - // take the targetContainer element out of the dom - newEl.detach().insertAfter(targetContainer); - targetContainer.remove(); - - // call the complete callback - _complete(); - - // and clear all references - options = $canvas = container = null; - - } - }); - - } - }; - - if(options.effect === "slide") { - // for the slide effect, we move move the container down - animation = { - top: offset.top + canvas.height, - height: 0 - }; - - // and on each step of the animation, we need to offset the top so it - // remains in the same place on the screen - animateOptions.step = function(now, fx){ - if(fx.prop === "top") { - $canvas.css("top", fx.start - now); - } - }; - } - - // apply the animation - container.animate(animation, animateOptions); - - // replace the original element with the new one - // we use detatch so that the event handlers on the old - // element are retained. - targetContainer.insertAfter(el); - el.detach(); - - }; - - // create a glitched version of the start element - glitch(el, options); - }; - - window.glitch = glitch; - - if($) { - /** - * jQuery glitch.js plugin - * - * This can be called in the following ways: - * - * Replace the element with a glitched version - * $("#el").glitch() - * - * Create a glitched canvas and pass it to a callback function - * $("#el").glitch(function(canvas){}) - * - * Transition effect - * $("#el").glitch('transition', $("#newEl"), {}) - */ - $.fn.glitch = function(method) { - var args = Array.prototype.splice.call(arguments, 1); - method = method || 'replace'; - return this.each(function(){ - if(method instanceof $) { - glitch.transition($(this), method, args[0]); - } else if(typeof method == 'function') { - // just a callback passed in - glitch($(this), { - complete: method - }); - } else if(typeof method == 'object') { - // an options object passed in - glitch($(this), method); - } else if(glitch.hasOwnProperty(method)) { - // explicitly call a method - glitch[method].apply(null, [$(this)].concat(args)); - } else { - $.error('Method ' + method + ' does not exist on jQuery.glitch'); - } - }); - }; - } - })(window.jQuery); \ No newline at end of file diff --git a/assets/js/glitch/html2canvas.js b/assets/js/glitch/html2canvas.js deleted file mode 100644 index 97b5e91..0000000 --- a/assets/js/glitch/html2canvas.js +++ /dev/null @@ -1,2791 +0,0 @@ -/** - @license html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - (function(window, document, undefined){ - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - "use strict"; - - var _html2canvas = {}, - previousElement, - computedCSS, - html2canvas; - - - function h2clog(a) { - if (_html2canvas.logging && window.console && window.console.log) { - window.console.log(a); - } - } - - _html2canvas.Util = {}; - - _html2canvas.Util.backgroundImage = function (src) { - - if (/data:image\/.*;base64,/i.test( src ) || /^(-webkit|-moz|linear-gradient|-o-)/.test( src )) { - return src; - } - - if (src.toLowerCase().substr( 0, 5 ) === 'url("') { - src = src.substr( 5 ); - src = src.substr( 0, src.length - 2 ); - } else { - src = src.substr( 4 ); - src = src.substr( 0, src.length - 1 ); - } - - return src; - }; - - function adjustBounds(el, box) { - var win = document.defaultView; - var doc = el.ownerDocument; - var body = doc.body; - var docElem = doc.documentElement; - var clientTop = docElem.clientTop || body.clientTop || 0; - var clientLeft = docElem.clientLeft || body.clientLeft || 0; - var scrollTop = win.pageYOffset || docElem.scrollTop; - var scrollLeft = win.pageXOffset || docElem.scrollLeft; - var top = box.top + scrollTop - clientTop; - var left = box.left + scrollLeft - clientLeft; - - return { - top: top, - left: left, - bottom: top + box.height, - height: box.height, - width: box.width - }; - } - - _html2canvas.Util.Bounds = function getBounds (el) { - var clientRect, - bounds = {}; - - if (el.getBoundingClientRect){ - return adjustBounds(el, el.getBoundingClientRect()); - } - }; - - _html2canvas.Util.getCSS = function (el, attribute) { - // return $(el).css(attribute); - - var val; - - function toPX( attribute, val ) { - var rsLeft = el.runtimeStyle && el.runtimeStyle[ attribute ], - left, - style = el.style; - - // Check if we are not dealing with pixels, (Opera has issues with this) - // Ported from jQuery css.js - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - - if ( !/^-?[0-9]+\.?[0-9]*(?:px)?$/i.test( val ) && /^-?\d/.test( val ) ) { - - // Remember the original values - left = style.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - el.runtimeStyle.left = el.currentStyle.left; - } - style.left = attribute === "fontSize" ? "1em" : (val || 0); - val = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - el.runtimeStyle.left = rsLeft; - } - - } - - if (!/^(thin|medium|thick)$/i.test( val )) { - return Math.round(parseFloat( val )) + "px"; - } - - return val; - - } - - - if ( window.getComputedStyle ) { - if ( previousElement !== el ) { - computedCSS = document.defaultView.getComputedStyle(el, null); - } - val = computedCSS[ attribute ]; - - if ( attribute === "backgroundPosition" ) { - - val = (val.split(",")[0] || "0 0").split(" "); - - val[ 0 ] = ( val[0].indexOf( "%" ) === -1 ) ? toPX( attribute + "X", val[ 0 ] ) : val[ 0 ]; - val[ 1 ] = ( val[1] === undefined ) ? val[0] : val[1]; // IE 9 doesn't return double digit always - val[ 1 ] = ( val[1].indexOf( "%" ) === -1 ) ? toPX( attribute + "Y", val[ 1 ] ) : val[ 1 ]; - } - - } else if ( el.currentStyle ) { - // IE 9> - if (attribute === "backgroundPosition") { - // Older IE uses -x and -y - val = [ toPX( attribute + "X", el.currentStyle[ attribute + "X" ] ), toPX( attribute + "Y", el.currentStyle[ attribute + "Y" ] ) ]; - } else { - - val = toPX( attribute, el.currentStyle[ attribute ] ); - - if (/^(border)/i.test( attribute ) && /^(medium|thin|thick)$/i.test( val )) { - switch (val) { - case "thin": - val = "1px"; - break; - case "medium": - val = "0px"; // this is wrong, it should be 3px but IE uses medium for no border as well.. TODO find a work around - break; - case "thick": - val = "5px"; - break; - } - } - } - - - - } - - - - - return val; - - - - //return $(el).css(attribute); - - - }; - - - _html2canvas.Util.BackgroundPosition = function ( el, bounds, image ) { - // TODO add support for multi image backgrounds - - var bgposition = _html2canvas.Util.getCSS( el, "backgroundPosition" ) , - topPos, - left, - percentage, - val; - - if (bgposition.length === 1){ - val = bgposition; - - bgposition = []; - - bgposition[0] = val; - bgposition[1] = val; - } - - - - if (bgposition[0].toString().indexOf("%") !== -1){ - percentage = (parseFloat(bgposition[0])/100); - left = ((bounds.width * percentage)-(image.width*percentage)); - - }else{ - left = parseInt(bgposition[0],10); - } - - if (bgposition[1].toString().indexOf("%") !== -1){ - - percentage = (parseFloat(bgposition[1])/100); - topPos = ((bounds.height * percentage)-(image.height*percentage)); - }else{ - topPos = parseInt(bgposition[1],10); - } - - - - - return { - top: topPos, - left: left - }; - - }; - - _html2canvas.Util.Extend = function (options, defaults) { - for (var key in options) { - if (options.hasOwnProperty(key)) { - defaults[key] = options[key]; - } - } - return defaults; - }; - - - /* - * Derived from jQuery.contents() - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ - _html2canvas.Util.Children = function( elem ) { - - - var children; - try { - - children = (elem.nodeName && elem.nodeName.toUpperCase() === "IFRAME") ? - elem.contentDocument || elem.contentWindow.document : (function( array ){ - var ret = []; - - if ( array !== null ) { - - (function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - })( ret, array ); - - } - - return ret; - })( elem.childNodes ); - - } catch (ex) { - h2clog("html2canvas.Util.Children failed with exception: " + ex.message); - children = []; - } - return children; - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Contributor(s): - Niklas von Hertzen - André Fiedler - - Released under MIT License - */ - - (function(){ - - _html2canvas.Generate = {}; - - var reGradients = [ - /^(-webkit-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-o-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-webkit-gradient)\((linear|radial),\s((?:\d{1,3}%?)\s(?:\d{1,3}%?),\s(?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)-]+)\)$/, - /^(-moz-linear-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)]+)\)$/, - /^(-webkit-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z-]+)([\w\d\.\s,%\(\)]+)\)$/, - /^(-moz-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s?([a-z-]*)([\w\d\.\s,%\(\)]+)\)$/, - /^(-o-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z-]+)([\w\d\.\s,%\(\)]+)\)$/ - ]; - - /* - * TODO: Add IE10 vendor prefix (-ms) support - * TODO: Add W3C gradient (linear-gradient) support - * TODO: Add old Webkit -webkit-gradient(radial, ...) support - * TODO: Maybe some RegExp optimizations are possible ;o) - */ - _html2canvas.Generate.parseGradient = function(css, bounds) { - var gradient, i, len = reGradients.length, m1, stop, m2, m2Len, step, m3; - - for(i = 0; i < len; i+=1){ - m1 = css.match(reGradients[i]); - if(m1) break; - } - - if(m1) { - switch(m1[1]) { - case '-webkit-linear-gradient': - case '-o-linear-gradient': - - gradient = { - type: 'linear', - x0: null, - y0: null, - x1: null, - y1: null, - colorStops: [] - }; - - // get coordinates - m2 = m1[2].match(/\w+/g); - if(m2){ - m2Len = m2.length; - for(i = 0; i < m2Len; i+=1){ - switch(m2[i]) { - case 'top': - gradient.y0 = 0; - gradient.y1 = bounds.height; - break; - - case 'right': - gradient.x0 = bounds.width; - gradient.x1 = 0; - break; - - case 'bottom': - gradient.y0 = bounds.height; - gradient.y1 = 0; - break; - - case 'left': - gradient.x0 = 0; - gradient.x1 = bounds.width; - break; - } - } - } - if(gradient.x0 === null && gradient.x1 === null){ // center - gradient.x0 = gradient.x1 = bounds.width / 2; - } - if(gradient.y0 === null && gradient.y1 === null){ // center - gradient.y0 = gradient.y1 = bounds.height / 2; - } - - // get colors and stops - m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3] === '%'){ - stop /= 100; - } else { // px - stupid opera - stop /= bounds.width; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - - case '-webkit-gradient': - - gradient = { - type: m1[2] === 'radial' ? 'circle' : m1[2], // TODO: Add radial gradient support for older mozilla definitions - x0: 0, - y0: 0, - x1: 0, - y1: 0, - colorStops: [] - }; - - // get coordinates - m2 = m1[3].match(/(\d{1,3})%?\s(\d{1,3})%?,\s(\d{1,3})%?\s(\d{1,3})%?/); - if(m2){ - gradient.x0 = (m2[1] * bounds.width) / 100; - gradient.y0 = (m2[2] * bounds.height) / 100; - gradient.x1 = (m2[3] * bounds.width) / 100; - gradient.y1 = (m2[4] * bounds.height) / 100; - } - - // get colors and stops - m2 = m1[4].match(/((?:from|to|color-stop)\((?:[0-9\.]+,\s)?(?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)\))+/g); - if(m2){ - m2Len = m2.length; - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/(from|to|color-stop)\(([0-9\.]+)?(?:,\s)?((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\)/); - stop = parseFloat(m3[2]); - if(m3[1] === 'from') stop = 0.0; - if(m3[1] === 'to') stop = 1.0; - gradient.colorStops.push({ - color: m3[3], - stop: stop - }); - } - } - break; - - case '-moz-linear-gradient': - - gradient = { - type: 'linear', - x0: 0, - y0: 0, - x1: 0, - y1: 0, - colorStops: [] - }; - - // get coordinates - m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/); - - // m2[1] == 0% -> left - // m2[1] == 50% -> center - // m2[1] == 100% -> right - - // m2[2] == 0% -> top - // m2[2] == 50% -> center - // m2[2] == 100% -> bottom - - if(m2){ - gradient.x0 = (m2[1] * bounds.width) / 100; - gradient.y0 = (m2[2] * bounds.height) / 100; - gradient.x1 = bounds.width - gradient.x0; - gradient.y1 = bounds.height - gradient.y0; - } - - // get colors and stops - m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}%)?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3]){ // percentage - stop /= 100; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - - case '-webkit-radial-gradient': - case '-moz-radial-gradient': - case '-o-radial-gradient': - - gradient = { - type: 'circle', - x0: 0, - y0: 0, - x1: bounds.width, - y1: bounds.height, - cx: 0, - cy: 0, - rx: 0, - ry: 0, - colorStops: [] - }; - - // center - m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/); - if(m2){ - gradient.cx = (m2[1] * bounds.width) / 100; - gradient.cy = (m2[2] * bounds.height) / 100; - } - - // size - m2 = m1[3].match(/\w+/); - m3 = m1[4].match(/[a-z-]*/); - if(m2 && m3){ - switch(m3[0]){ - case 'farthest-corner': - case 'cover': // is equivalent to farthest-corner - case '': // mozilla removes "cover" from definition :( - var tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2)); - var tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2)); - gradient.rx = gradient.ry = Math.max(tl, tr, br, bl); - break; - case 'closest-corner': - var tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2)); - var tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2)); - var bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2)); - gradient.rx = gradient.ry = Math.min(tl, tr, br, bl); - break; - case 'farthest-side': - if(m2[0] === 'circle'){ - gradient.rx = gradient.ry = Math.max( - gradient.cx, - gradient.cy, - gradient.x1 - gradient.cx, - gradient.y1 - gradient.cy - ); - } else { // ellipse - - gradient.type = m2[0]; - - gradient.rx = Math.max( - gradient.cx, - gradient.x1 - gradient.cx - ); - gradient.ry = Math.max( - gradient.cy, - gradient.y1 - gradient.cy - ); - } - break; - case 'closest-side': - case 'contain': // is equivalent to closest-side - if(m2[0] === 'circle'){ - gradient.rx = gradient.ry = Math.min( - gradient.cx, - gradient.cy, - gradient.x1 - gradient.cx, - gradient.y1 - gradient.cy - ); - } else { // ellipse - - gradient.type = m2[0]; - - gradient.rx = Math.min( - gradient.cx, - gradient.x1 - gradient.cx - ); - gradient.ry = Math.min( - gradient.cy, - gradient.y1 - gradient.cy - ); - } - break; - - // TODO: add support for "30px 40px" sizes (webkit only) - } - } - - // color stops - m2 = m1[5].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g); - if(m2){ - m2Len = m2.length; - step = 1 / Math.max(m2Len - 1, 1); - for(i = 0; i < m2Len; i+=1){ - m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/); - if(m3[2]){ - stop = parseFloat(m3[2]); - if(m3[3] === '%'){ - stop /= 100; - } else { // px - stupid opera - stop /= bounds.width; - } - } else { - stop = i * step; - } - gradient.colorStops.push({ - color: m3[1], - stop: stop - }); - } - } - break; - } - } - - return gradient; - }; - - _html2canvas.Generate.Gradient = function(src, bounds) { - var canvas = document.createElement('canvas'), - ctx = canvas.getContext('2d'), - gradient, grad, i, len, img; - - canvas.width = bounds.width; - canvas.height = bounds.height; - - // TODO: add support for multi defined background gradients (like radial gradient example in background.html) - gradient = _html2canvas.Generate.parseGradient(src, bounds); - - img = new Image(); - - if(gradient){ - if(gradient.type === 'linear'){ - grad = ctx.createLinearGradient(gradient.x0, gradient.y0, gradient.x1, gradient.y1); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctx.fillStyle = grad; - ctx.fillRect(0, 0, bounds.width, bounds.height); - - img.src = canvas.toDataURL(); - } else if(gradient.type === 'circle'){ - - grad = ctx.createRadialGradient(gradient.cx, gradient.cy, 0, gradient.cx, gradient.cy, gradient.rx); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctx.fillStyle = grad; - ctx.fillRect(0, 0, bounds.width, bounds.height); - - img.src = canvas.toDataURL(); - } else if(gradient.type === 'ellipse'){ - - // draw circle - var canvasRadial = document.createElement('canvas'), - ctxRadial = canvasRadial.getContext('2d'), - ri = Math.max(gradient.rx, gradient.ry), - di = ri * 2, imgRadial; - - canvasRadial.width = canvasRadial.height = di; - - grad = ctxRadial.createRadialGradient(gradient.rx, gradient.ry, 0, gradient.rx, gradient.ry, ri); - - for (i = 0, len = gradient.colorStops.length; i < len; i+=1) { - try { - grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color); - } - catch(e) { - h2clog(['failed to add color stop: ', e, '; tried to add: ', gradient.colorStops[i], '; stop: ', i, '; in: ', src]); - } - } - - ctxRadial.fillStyle = grad; - ctxRadial.fillRect(0, 0, di, di); - - ctx.fillStyle = gradient.colorStops[i - 1].color; - ctx.fillRect(0, 0, canvas.width, canvas.height); - - imgRadial = new Image(); - imgRadial.onload = function() { // wait until the image is filled - - // transform circle to ellipse - ctx.drawImage(imgRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry); - - img.src = canvas.toDataURL(); - - } - imgRadial.src = canvasRadial.toDataURL(); - } - } - - return img; - }; - - _html2canvas.Generate.ListAlpha = function(number) { - var tmp = "", - modulus; - - do { - modulus = number % 26; - tmp = String.fromCharCode((modulus) + 64) + tmp; - number = number / 26; - }while((number*26) > 26); - - return tmp; - }; - - _html2canvas.Generate.ListRoman = function(number) { - var romanArray = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"], - decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1], - roman = "", - v, - len = romanArray.length; - - if (number <= 0 || number >= 4000) { - return number; - } - - for (v=0; v < len; v+=1) { - while (number >= decimal[v]) { - number -= decimal[v]; - roman += romanArray[v]; - } - } - - return roman; - - }; - - })(); - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - /* - * New function for traversing elements - */ - - _html2canvas.Parse = function ( images, options ) { - - var support = { - rangeBounds: false, - svgRendering: options.svgRendering && (function( ){ - var img = new Image(), - canvas = document.createElement("canvas"), - ctx = (canvas.getContext === undefined) ? false : canvas.getContext("2d"); - if (ctx === false) { - // browser doesn't support canvas, good luck supporting SVG on canvas - return false; - } - canvas.width = canvas.height = 10; - img.src = [ - "data:image/svg+xml,", - "", - "", - "
", - "sup", - "
", - "
", - "
" - ].join(""); - try { - ctx.drawImage(img, 0, 0); - canvas.toDataURL(); - } catch(e) { - return false; - } - h2clog('html2canvas: Parse: SVG powered rendering available'); - return true; - - })() - }, - element = (( options.elements === undefined ) ? document.body : options.elements[0]), // select body by default - needReorder = false, - numDraws = 0, - fontData = {}, - doc = element.ownerDocument, - ignoreElementsRegExp = new RegExp("(" + options.ignoreElements + ")"), - body = doc.body, - r, - testElement, - rangeBounds, - rangeHeight, - stack, - ctx, - docDim, - i, - children, - childrenLen; - - - function docSize(){ - - return { - width: Math.max( - Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth), - Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth), - Math.max(doc.body.clientWidth, doc.documentElement.clientWidth) - ), - height: Math.max( - Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight), - Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight), - Math.max(doc.body.clientHeight, doc.documentElement.clientHeight) - ) - }; - - } - - images = images || {}; - - // Test whether we can use ranges to measure bounding boxes - // Opera doesn't provide valid bounds.height/bottom even though it supports the method. - - - if (doc.createRange) { - r = doc.createRange(); - //this.support.rangeBounds = new Boolean(r.getBoundingClientRect); - if (r.getBoundingClientRect){ - testElement = doc.createElement('boundtest'); - testElement.style.height = "123px"; - testElement.style.display = "block"; - body.appendChild(testElement); - - r.selectNode(testElement); - rangeBounds = r.getBoundingClientRect(); - rangeHeight = rangeBounds.height; - - if (rangeHeight === 123) { - support.rangeBounds = true; - } - body.removeChild(testElement); - - - } - - } - - - /* - var rootStack = new this.storageContext($(document).width(),$(document).height()); - rootStack.opacity = this.getCSS(this.element,"opacity"); - var stack = this.newElement(this.element,rootStack); - - - this.parseElement(this.element,stack); - */ - - - - - var getCSS = _html2canvas.Util.getCSS; - function getCSSInt(element, attribute) { - var val = parseInt(getCSS(element, attribute), 10); - return (isNaN(val)) ? 0 : val; // borders in old IE are throwing 'medium' for demo.html - } - - // Drawing a rectangle - function renderRect (ctx, x, y, w, h, bgcolor) { - if (bgcolor !=="transparent"){ - ctx.setVariable("fillStyle", bgcolor); - ctx.fillRect (x, y, w, h); - numDraws+=1; - } - } - - - function textTransform (text, transform) { - switch(transform){ - case "lowercase": - return text.toLowerCase(); - - case "capitalize": - return text.replace( /(^|\s|:|-|\(|\))([a-z])/g , function (m, p1, p2) { - if (m.length > 0) { - return p1 + p2.toUpperCase(); - } - } ); - - case "uppercase": - return text.toUpperCase(); - - default: - return text; - - } - - } - - function trimText (text) { - return text.replace(/^\s*/g, "").replace(/\s*$/g, ""); - } - - function fontMetrics (font, fontSize) { - - if (fontData[font + "-" + fontSize] !== undefined) { - return fontData[font + "-" + fontSize]; - } - - - var container = doc.createElement('div'), - img = doc.createElement('img'), - span = doc.createElement('span'), - baseline, - middle, - metricsObj; - - - container.style.visibility = "hidden"; - container.style.fontFamily = font; - container.style.fontSize = fontSize; - container.style.margin = 0; - container.style.padding = 0; - - body.appendChild(container); - - - - // http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever (handtinywhite.gif) - img.src = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs="; - img.width = 1; - img.height = 1; - - img.style.margin = 0; - img.style.padding = 0; - img.style.verticalAlign = "baseline"; - - span.style.fontFamily = font; - span.style.fontSize = fontSize; - span.style.margin = 0; - span.style.padding = 0; - - - - - span.appendChild(doc.createTextNode('Hidden Text')); - container.appendChild(span); - container.appendChild(img); - baseline = (img.offsetTop - span.offsetTop) + 1; - - container.removeChild(span); - container.appendChild(doc.createTextNode('Hidden Text')); - - container.style.lineHeight = "normal"; - img.style.verticalAlign = "super"; - - middle = (img.offsetTop-container.offsetTop) + 1; - metricsObj = { - baseline: baseline, - lineWidth: 1, - middle: middle - }; - - - fontData[font + "-" + fontSize] = metricsObj; - - body.removeChild(container); - - return metricsObj; - - } - - - function drawText(currentText, x, y, ctx){ - if (trimText(currentText).length>0) { - ctx.fillText(currentText,x,y); - numDraws+=1; - } - } - - - function renderText(el, textNode, stack) { - var ctx = stack.ctx, - family = getCSS(el, "fontFamily"), - size = getCSS(el, "fontSize"), - color = getCSS(el, "color"), - text_decoration = getCSS(el, "textDecoration"), - text_align = getCSS(el, "textAlign"), - letter_spacing = getCSS(el, "letterSpacing"), - bounds, - text, - metrics, - renderList, - listLen, - bold = getCSS(el, "fontWeight"), - font_style = getCSS(el, "fontStyle"), - font_variant = getCSS(el, "fontVariant"), - align = false, - newTextNode, - textValue, - textOffset = 0, - oldTextNode, - c, - range, - parent, - wrapElement, - backupText; - - // apply text-transform:ation to the text - - - - textNode.nodeValue = textTransform(textNode.nodeValue, getCSS(el, "textTransform")); - text = trimText(textNode.nodeValue); - - if (text.length>0){ - - if (text_decoration !== "none"){ - metrics = fontMetrics(family, size); - } - - text_align = text_align.replace(["-webkit-auto"],["auto"]); - - if (options.letterRendering === false && /^(left|right|justify|auto)$/.test(text_align) && /^(normal|none)$/.test(letter_spacing)){ - // this.setContextVariable(ctx,"textAlign",text_align); - renderList = textNode.nodeValue.split(/(\b| )/); - - }else{ - // this.setContextVariable(ctx,"textAlign","left"); - renderList = textNode.nodeValue.split(""); - } - - switch(parseInt(bold, 10)){ - case 401: - bold = "bold"; - break; - case 400: - bold = "normal"; - break; - } - - ctx.setVariable("fillStyle", color); - - /* - need to be defined in the order as defined in http://www.w3.org/TR/CSS21/fonts.html#font-shorthand - to properly work in Firefox - */ - ctx.setVariable("font", font_style+ " " + font_variant + " " + bold + " " + size + " " + family); - - if (align){ - ctx.setVariable("textAlign", "right"); - }else{ - ctx.setVariable("textAlign", "left"); - } - - - /* - if (stack.clip){ - ctx.rect (stack.clip.left, stack.clip.top, stack.clip.width, stack.clip.height); - ctx.clip(); - } - */ - - - oldTextNode = textNode; - - - for ( c=0, listLen = renderList.length; c < listLen; c+=1 ) { - textValue = null; - - - - if (support.rangeBounds){ - // getBoundingClientRect is supported for ranges - if (text_decoration !== "none" || trimText(renderList[c]).length !== 0) { - textValue = renderList[c]; - if (doc.createRange){ - range = doc.createRange(); - - range.setStart(textNode, textOffset); - range.setEnd(textNode, textOffset + textValue.length); - }else{ - // TODO add IE support - range = body.createTextRange(); - } - - bounds = adjustBounds(textNode, range.getBoundingClientRect()); - - } - }else{ - // it isn't supported, so let's wrap it inside an element instead and get the bounds there - - // IE 9 bug - if (typeof oldTextNode.nodeValue !== "string" ){ - continue; - } - - newTextNode = oldTextNode.splitText(renderList[c].length); - - parent = oldTextNode.parentNode; - wrapElement = doc.createElement('wrapper'); - backupText = oldTextNode.cloneNode(true); - - wrapElement.appendChild(oldTextNode.cloneNode(true)); - parent.replaceChild(wrapElement, oldTextNode); - - bounds = _html2canvas.Util.Bounds(wrapElement); - - textValue = oldTextNode.nodeValue; - - oldTextNode = newTextNode; - parent.replaceChild(backupText, wrapElement); - - - } - - if (textValue !== null){ - drawText(textValue, bounds.left, bounds.bottom, ctx); - } - - switch(text_decoration) { - case "underline": - // Draws a line at the baseline of the font - // TODO As some browsers display the line as more than 1px if the font-size is big, need to take that into account both in position and size - renderRect(ctx, bounds.left, Math.round(bounds.top + metrics.baseline + metrics.lineWidth), bounds.width, 1, color); - break; - case "overline": - renderRect(ctx, bounds.left, bounds.top, bounds.width, 1, color); - break; - case "line-through": - // TODO try and find exact position for line-through - renderRect(ctx, bounds.left, Math.ceil(bounds.top + metrics.middle + metrics.lineWidth), bounds.width, 1, color); - break; - - } - - - - - - textOffset += renderList[c].length; - - } - - - - } - - } - - function listPosition (element, val) { - var boundElement = doc.createElement( "boundelement" ), - type, - bounds; - - boundElement.style.display = "inline"; - //boundElement.style.width = "1px"; - //boundElement.style.height = "1px"; - - type = element.style.listStyleType; - element.style.listStyleType = "none"; - - boundElement.appendChild( doc.createTextNode( val ) ); - - - element.insertBefore(boundElement, element.firstChild); - - - bounds = _html2canvas.Util.Bounds( boundElement ); - element.removeChild( boundElement ); - element.style.listStyleType = type; - return bounds; - - } - - - - function elementIndex( el ) { - var i = -1, - count = 1, - childs = el.parentNode.childNodes; - - if ( el.parentNode ) { - while( childs[ ++i ] !== el ) { - if ( childs[ i ].nodeType === 1 ) { - count++; - } - } - return count; - } else { - return -1; - } - - } - - function renderListItem(element, stack, elBounds) { - - - var position = getCSS(element, "listStylePosition"), - x, - y, - type = getCSS(element, "listStyleType"), - currentIndex, - text, - listBounds, - bold = getCSS(element, "fontWeight"); - - if (/^(decimal|decimal-leading-zero|upper-alpha|upper-latin|upper-roman|lower-alpha|lower-greek|lower-latin|lower-roman)$/i.test(type)) { - - currentIndex = elementIndex( element ); - - switch(type){ - case "decimal": - text = currentIndex; - break; - case "decimal-leading-zero": - if (currentIndex.toString().length === 1){ - text = currentIndex = "0" + currentIndex.toString(); - }else{ - text = currentIndex.toString(); - } - break; - case "upper-roman": - text = _html2canvas.Generate.ListRoman( currentIndex ); - break; - case "lower-roman": - text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase(); - break; - case "lower-alpha": - text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase(); - break; - case "upper-alpha": - text = _html2canvas.Generate.ListAlpha( currentIndex ); - break; - } - - - text += ". "; - listBounds = listPosition(element, text); - - - - switch(bold){ - case 401: - bold = "bold"; - break; - case 400: - bold = "normal"; - break; - } - - - - - ctx.setVariable( "fillStyle", getCSS(element, "color") ); - ctx.setVariable( "font", getCSS(element, "fontVariant") + " " + bold + " " + getCSS(element, "fontStyle") + " " + getCSS(element, "fontSize") + " " + getCSS(element, "fontFamily") ); - - - if ( position === "inside" ) { - ctx.setVariable("textAlign", "left"); - // this.setFont(stack.ctx, element, false); - x = elBounds.left; - - }else{ - return; - /* - TODO really need to figure out some more accurate way to try and find the position. - as defined in http://www.w3.org/TR/CSS21/generate.html#propdef-list-style-position, it does not even have a specified "correct" position, so each browser - may display it whatever way it feels like. - "The position of the list-item marker adjacent to floats is undefined in CSS 2.1. CSS 2.1 does not specify the precise location of the marker box or its position in the painting order" - - ctx.setVariable("textAlign", "right"); - // this.setFont(stack.ctx, element, true); - x = elBounds.left - 10; - */ - } - - y = listBounds.bottom; - - drawText(text, x, y, ctx); - - - } - - - } - - function loadImage (src){ - var img = images[src]; - if (img && img.succeeded === true) { - return img.img; - } else { - return false; - } - } - - - - - - - function clipBounds(src, dst){ - - var x = Math.max(src.left, dst.left), - y = Math.max(src.top, dst.top), - x2 = Math.min((src.left + src.width), (dst.left + dst.width)), - y2 = Math.min((src.top + src.height), (dst.top + dst.height)); - - return { - left:x, - top:y, - width:x2-x, - height:y2-y - }; - - } - - function setZ(zIndex, parentZ){ - // TODO fix static elements overlapping relative/absolute elements under same stack, if they are defined after them - var newContext; - if (!parentZ){ - newContext = h2czContext(0); - return newContext; - } - - if (zIndex !== "auto"){ - needReorder = true; - newContext = h2czContext(zIndex); - parentZ.children.push(newContext); - return newContext; - - } - - return parentZ; - - } - - function renderBorders(el, ctx, bounds, clip){ - - /* - * TODO add support for different border-style's than solid - */ - - var x = bounds.left, - y = bounds.top, - w = bounds.width, - h = bounds.height, - borderSide, - borderData, - bx, - by, - bw, - bh, - borderBounds, - borders = (function(el){ - var borders = [], - sides = ["Top","Right","Bottom","Left"], - s; - - for (s = 0; s < 4; s+=1){ - borders.push({ - width: getCSSInt(el, 'border' + sides[s] + 'Width'), - color: getCSS(el, 'border' + sides[s] + 'Color') - }); - } - - return borders; - - }(el)); - - - for (borderSide = 0; borderSide < 4; borderSide+=1){ - borderData = borders[borderSide]; - - if (borderData.width>0){ - bx = x; - by = y; - bw = w; - bh = h - (borders[2].width); - - switch(borderSide){ - case 0: - // top border - bh = borders[0].width; - break; - case 1: - // right border - bx = x + w - (borders[1].width); - bw = borders[1].width; - break; - case 2: - // bottom border - by = (by + h) - (borders[2].width); - bh = borders[2].width; - break; - case 3: - // left border - bw = borders[3].width; - break; - } - - borderBounds = { - left:bx, - top:by, - width: bw, - height:bh - }; - - if (clip){ - borderBounds = clipBounds(borderBounds, clip); - } - - - if (borderBounds.width>0 && borderBounds.height>0){ - renderRect(ctx, bx, by, borderBounds.width, borderBounds.height, borderData.color); - } - - - } - } - - return borders; - - } - - - function renderFormValue (el, bounds, stack){ - - var valueWrap = doc.createElement('valuewrap'), - cssArr = ['lineHeight','textAlign','fontFamily','color','fontSize','paddingLeft','paddingTop','width','height','border','borderLeftWidth','borderTopWidth'], - i, - textValue, - textNode, - arrLen, - style; - - for (i = 0, arrLen = cssArr.length; i < arrLen; i+=1){ - style = cssArr[i]; - - try { - valueWrap.style[style] = getCSS(el, style); - } catch( e ) { - // Older IE has issues with "border" - h2clog("html2canvas: Parse: Exception caught in renderFormValue: " + e.message); - } - } - - - valueWrap.style.borderColor = "black"; - valueWrap.style.borderStyle = "solid"; - valueWrap.style.display = "block"; - valueWrap.style.position = "absolute"; - if (/^(submit|reset|button|text|password)$/.test(el.type) || el.nodeName === "SELECT"){ - valueWrap.style.lineHeight = getCSS(el, "height"); - } - - - valueWrap.style.top = bounds.top + "px"; - valueWrap.style.left = bounds.left + "px"; - - if (el.nodeName === "SELECT"){ - // TODO increase accuracy of text position - textValue = el.options[el.selectedIndex].text; - } else{ - textValue = el.value; - } - textNode = doc.createTextNode(textValue); - - valueWrap.appendChild(textNode); - body.appendChild(valueWrap); - - - renderText(el, textNode, stack); - body.removeChild(valueWrap); - - - - } - - - - - - function renderImage (ctx, image, sx, sy, sw, sh, dx, dy, dw, dh) { - ctx.drawImage( - image, - sx, //sx - sy, //sy - sw, //sw - sh, //sh - dx, //dx - dy, // dy - dw, //dw - dh //dh - ); - numDraws+=1; - - } - - - function renderBackgroundRepeat (ctx, image, x, y, width, height, elx, ely){ - var sourceX = 0, - sourceY=0; - if (elx-x>0){ - sourceX = elx-x; - } - - if (ely-y>0){ - sourceY = ely-y; - } - - renderImage( - ctx, - image, - sourceX, // source X - sourceY, // source Y - width-sourceX, // source Width - height-sourceY, // source Height - x+sourceX, // destination X - y+sourceY, // destination Y - width-sourceX, // destination width - height-sourceY // destination height - ); - } - - - function renderBackgroundRepeatY (ctx, image, bgp, x, y, w, h){ - - var height, - width = Math.min(image.width,w),bgy; - - bgp.top = bgp.top-Math.ceil(bgp.top/image.height)*image.height; - - - for(bgy=(y+bgp.top);bgyh+y){ - height = (h+y)-bgy; - }else{ - height = image.height; - } - renderBackgroundRepeat(ctx,image,x+bgp.left,bgy,width,height,x,y); - - bgy = Math.floor(bgy+image.height); - - } - } - - function renderBackgroundRepeatX(ctx, image, bgp, x, y, w, h){ - - var height = Math.min(image.height,h), - width,bgx; - - - bgp.left = bgp.left-Math.ceil(bgp.left/image.width)*image.width; - - - for (bgx=(x+bgp.left);bgxw+x){ - width = (w+x)-bgx; - }else{ - width = image.width; - } - - renderBackgroundRepeat(ctx,image,bgx,(y+bgp.top),width,height,x,y); - - bgx = Math.floor(bgx+image.width); - - - } - } - - function renderBackground(el,bounds,ctx){ - - // TODO add support for multi background-images - var background_image = getCSS(el, "backgroundImage"), - background_repeat = getCSS(el, "backgroundRepeat").split(",")[0], - image, - bgp, - bgy, - bgw, - bgsx, - bgsy, - bgdx, - bgdy, - bgh, - h, - height, - add; - - // if (typeof background_image !== "undefined" && /^(1|none)$/.test(background_image) === false && /^(-webkit|-moz|linear-gradient|-o-)/.test(background_image)===false){ - - if ( !/data:image\/.*;base64,/i.test(background_image) && !/^(-webkit|-moz|linear-gradient|-o-)/.test(background_image) ) { - background_image = background_image.split(",")[0]; - } - - if ( typeof background_image !== "undefined" && /^(1|none)$/.test( background_image ) === false ) { - background_image = _html2canvas.Util.backgroundImage( background_image ); - image = loadImage( background_image ); - - - bgp = _html2canvas.Util.BackgroundPosition(el, bounds, image); - - // TODO add support for background-origin - if ( image ){ - switch ( background_repeat ) { - - case "repeat-x": - renderBackgroundRepeatX( ctx, image, bgp, bounds.left, bounds.top, bounds.width, bounds.height ); - break; - - case "repeat-y": - renderBackgroundRepeatY( ctx, image, bgp, bounds.left, bounds.top, bounds.width, bounds.height ); - break; - - case "no-repeat": - /* - this.drawBackgroundRepeat( - ctx, - image, - bgp.left+bounds.left, // sx - bgp.top+bounds.top, // sy - Math.min(bounds.width,image.width), - Math.min(bounds.height,image.height), - bounds.left, - bounds.top - );*/ - - - - bgw = bounds.width - bgp.left; - bgh = bounds.height - bgp.top; - bgsx = bgp.left; - bgsy = bgp.top; - bgdx = bgp.left+bounds.left; - bgdy = bgp.top+bounds.top; - - // - // bgw = Math.min(bgw,image.width); - // bgh = Math.min(bgh,image.height); - - if (bgsx<0){ - bgsx = Math.abs(bgsx); - bgdx += bgsx; - bgw = Math.min(bounds.width,image.width-bgsx); - }else{ - bgw = Math.min(bgw,image.width); - bgsx = 0; - } - - if (bgsy<0){ - bgsy = Math.abs(bgsy); - bgdy += bgsy; - // bgh = bgh-bgsy; - bgh = Math.min(bounds.height,image.height-bgsy); - }else{ - bgh = Math.min(bgh,image.height); - bgsy = 0; - } - - - if (bgh>0 && bgw > 0){ - renderImage( - ctx, - image, - bgsx, // source X : 0 - bgsy, // source Y : 1695 - bgw, // source Width : 18 - bgh, // source Height : 1677 - bgdx, // destination X :906 - bgdy, // destination Y : 1020 - bgw, // destination width : 18 - bgh // destination height : 1677 - ); - - } - break; - default: - - - - bgp.top = bgp.top-Math.ceil(bgp.top/image.height)*image.height; - - - for(bgy=(bounds.top+bgp.top);bgyh+bgy){ - height = (h+bgy)-bgy; - }else{ - height = image.height; - } - // console.log(height); - - if (bgy0){ - bgp.top += add; - } - bgy = Math.floor(bgy+image.height)-add; - } - break; - - - } - }else{ - h2clog("html2canvas: Error loading background:" + background_image); - //console.log(images); - } - - } - } - - - - function renderElement(el, parentStack){ - - var bounds = _html2canvas.Util.Bounds(el), - x = bounds.left, - y = bounds.top, - w = bounds.width, - h = bounds.height, - image, - bgcolor = getCSS(el, "backgroundColor"), - cssPosition = getCSS(el, "position"), - zindex, - opacity = getCSS(el, "opacity"), - stack, - stackLength, - borders, - ctx, - bgbounds, - imgSrc, - paddingLeft, - paddingTop, - paddingRight, - paddingBottom; - - if (!parentStack){ - docDim = docSize(); - parentStack = { - opacity: 1 - }; - }else{ - docDim = {}; - } - - - //var zindex = this.formatZ(this.getCSS(el,"zIndex"),cssPosition,parentStack.zIndex,el.parentNode); - - zindex = setZ( getCSS( el, "zIndex"), parentStack.zIndex ); - - - - stack = { - ctx: h2cRenderContext( docDim.width || w , docDim.height || h ), - zIndex: zindex, - opacity: opacity * parentStack.opacity, - cssPosition: cssPosition - }; - - - - // TODO correct overflow for absolute content residing under a static position - - if (parentStack.clip){ - stack.clip = _html2canvas.Util.Extend( {}, parentStack.clip ); - //stack.clip = parentStack.clip; - // stack.clip.height = stack.clip.height - parentStack.borders[2].width; - } - - - if ( options.useOverflow === true && /(hidden|scroll|auto)/.test(getCSS(el, "overflow")) === true && /(BODY)/i.test(el.nodeName) === false ){ - if (stack.clip){ - stack.clip = clipBounds(stack.clip, bounds); - }else{ - stack.clip = bounds; - } - } - - - stackLength = zindex.children.push(stack); - - ctx = zindex.children[stackLength-1].ctx; - - ctx.setVariable("globalAlpha", stack.opacity); - - // draw element borders - borders = renderBorders(el, ctx, bounds, false); - stack.borders = borders; - - - // let's modify clip area for child elements, so borders dont get overwritten - - /* - if (stack.clip){ - stack.clip.width = stack.clip.width-(borders[1].width); - stack.clip.height = stack.clip.height-(borders[2].width); - } - */ - if (ignoreElementsRegExp.test(el.nodeName) && options.iframeDefault !== "transparent"){ - if (options.iframeDefault === "default"){ - bgcolor = "#efefef"; - }else{ - bgcolor = options.iframeDefault; - } - } - - // draw base element bgcolor - - bgbounds = { - left: x + borders[3].width, - top: y + borders[0].width, - width: w - (borders[1].width + borders[3].width), - height: h - (borders[0].width + borders[2].width) - }; - - //if (this.withinBounds(stack.clip,bgbounds)){ - - if (stack.clip){ - bgbounds = clipBounds(bgbounds, stack.clip); - - //} - - } - - - if (bgbounds.height > 0 && bgbounds.width > 0){ - renderRect( - ctx, - bgbounds.left, - bgbounds.top, - bgbounds.width, - bgbounds.height, - bgcolor - ); - - renderBackground(el, bgbounds, ctx); - } - - switch(el.nodeName){ - case "IMG": - imgSrc = el.getAttribute('src'); - image = loadImage(imgSrc); - if (image){ - - paddingLeft = getCSSInt(el, 'paddingLeft'); - paddingTop = getCSSInt(el, 'paddingTop'); - paddingRight = getCSSInt(el, 'paddingRight'); - paddingBottom = getCSSInt(el, 'paddingBottom'); - - - renderImage( - ctx, - image, - 0, //sx - 0, //sy - image.width, //sw - image.height, //sh - x + paddingLeft + borders[3].width, //dx - y + paddingTop + borders[0].width, // dy - bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw - bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh - ); - - }else{ - h2clog("html2canvas: Error loading :" + imgSrc); - } - break; - case "INPUT": - // TODO add all relevant type's, i.e. HTML5 new stuff - // todo add support for placeholder attribute for browsers which support it - if (/^(text|url|email|submit|button|reset)$/.test(el.type) && el.value.length > 0){ - - renderFormValue(el, bounds, stack); - - - /* - this just doesn't work well enough - - this.newText(el,{ - nodeValue:el.value, - splitText: function(){ - return this; - }, - formValue:true - },stack); - */ - } - break; - case "TEXTAREA": - if (el.value.length > 0){ - renderFormValue(el, bounds, stack); - } - break; - case "SELECT": - if (el.options.length > 0){ - renderFormValue(el, bounds, stack); - } - break; - case "LI": - renderListItem(el, stack, bgbounds); - break; - case "CANVAS": - paddingLeft = getCSSInt(el, 'paddingLeft'); - paddingTop = getCSSInt(el, 'paddingTop'); - paddingRight = getCSSInt(el, 'paddingRight'); - paddingBottom = getCSSInt(el, 'paddingBottom'); - renderImage( - ctx, - el, - 0, //sx - 0, //sy - el.width, //sw - el.height, //sh - x + paddingLeft + borders[3].width, //dx - y + paddingTop + borders[0].width, // dy - bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw - bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh - ); - break; - } - - return zindex.children[stackLength - 1]; - } - - - - function parseElement (el, stack) { - - // skip hidden elements and their children - if (getCSS(el, 'display') !== "none" && getCSS(el, 'visibility') !== "hidden") { - - stack = renderElement(el, stack) || stack; - - ctx = stack.ctx; - - if ( !ignoreElementsRegExp.test( el.nodeName ) ) { - var elementChildren = _html2canvas.Util.Children( el ), - i, - node, - childrenLen; - for (i = 0, childrenLen = elementChildren.length; i < childrenLen; i+=1) { - node = elementChildren[i]; - - if ( node.nodeType === 1 ) { - parseElement(node, stack); - }else if ( node.nodeType === 3 ) { - renderText(el, node, stack); - } - - } - - } - } - } - - stack = renderElement(element, null); - - /* - SVG powered HTML rendering, non-tainted canvas available from FF 11+ onwards - */ - - if ( support.svgRendering ) { - (function( body ){ - var img = new Image(), - size = docSize(), - html = ""; - - function parseDOM( el ) { - var children = _html2canvas.Util.Children( el ), - len = children.length, - attr, - a, - alen, - elm, - i; - for ( i = 0; i < len; i+=1 ) { - elm = children[ i ]; - if ( elm.nodeType === 3 ) { - // Text node - - html += elm.nodeValue.replace(/\/g,">"); - } else if ( elm.nodeType === 1 ) { - // Element - if ( !/^(script|meta|title)$/.test(elm.nodeName.toLowerCase()) ) { - - html += "<" + elm.nodeName.toLowerCase(); - - // add attributes - if ( elm.hasAttributes() ) { - attr = elm.attributes; - alen = attr.length; - for ( a = 0; a < alen; a+=1 ) { - html += " " + attr[ a ].name + '="' + attr[ a ].value + '"'; - } - } - - - html += '>'; - - parseDOM( elm ); - - - html += ""; - } - } - - } - - } - - parseDOM( body ); - img.src = [ - "data:image/svg+xml,", - "", - "", - "", - html.replace(/\#/g,"%23"), - "", - "", - "" - ].join(""); - - - - - img.onload = function() { - stack.svgRender = img; - }; - - })( document.documentElement ); - - } - - - // parse every child element - for (i = 0, children = element.children, childrenLen = children.length; i < childrenLen; i+=1){ - parseElement(children[i], stack); - } - - - stack.backgroundColor = getCSS( document.documentElement, "backgroundColor" ); - - return stack; - - }; - - function h2czContext(zindex) { - return { - zindex: zindex, - children: [] - }; - } - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - _html2canvas.Preload = function( options ) { - - var images = { - numLoaded: 0, // also failed are counted here - numFailed: 0, - numTotal: 0, - cleanupDone: false - }, - pageOrigin, - methods, - i, - count = 0, - element = options.elements[0] || document.body, - doc = element.ownerDocument, - domImages = doc.images, // TODO probably should limit it to images present in the element only - imgLen = domImages.length, - link = doc.createElement("a"), - supportCORS = (function( img ){ - return (img.crossOrigin !== undefined); - })(new Image()), - timeoutTimer; - - link.href = window.location.href; - pageOrigin = link.protocol + link.host; - - - - - - - function isSameOrigin(url){ - link.href = url; - link.href = link.href; // YES, BELIEVE IT OR NOT, that is required for IE9 - http://jsfiddle.net/niklasvh/2e48b/ - var origin = link.protocol + link.host; - return (origin === pageOrigin); - } - - function start(){ - h2clog("html2canvas: start: images: " + images.numLoaded + " / " + images.numTotal + " (failed: " + images.numFailed + ")"); - if (!images.firstRun && images.numLoaded >= images.numTotal){ - h2clog("Finished loading images: # " + images.numTotal + " (failed: " + images.numFailed + ")"); - - if (typeof options.complete === "function"){ - options.complete(images); - } - - } - } - - function getImages (el) { - - - - // if (!this.ignoreRe.test(el.nodeName)){ - // - - var contents = _html2canvas.Util.Children(el), - i, - background_image, - src, - img, - elNodeType = false; - - // Firefox fails with permission denied on pages with iframes - try { - var contentsLen = contents.length; - for (i = 0; i < contentsLen; i+=1 ){ - // var ignRe = new RegExp("("+this.ignoreElements+")"); - // if (!ignRe.test(element.nodeName)){ - getImages(contents[i]); - // } - } - } - catch( e ) {} - - - // } - try { - elNodeType = el.nodeType; - } catch (ex) { - elNodeType = false; - h2clog("html2canvas: failed to access some element's nodeType - Exception: " + ex.message); - } - - if (elNodeType === 1 || elNodeType === undefined){ - - // opera throws exception on external-content.html - try { - background_image = _html2canvas.Util.getCSS(el, 'backgroundImage'); - }catch(e) { - h2clog("html2canvas: failed to get background-image - Exception: " + e.message); - } - if ( background_image && background_image !== "1" && background_image !== "none" ) { - - // TODO add multi image background support - - if (/^(-webkit|-o|-moz|-ms|linear)-/.test( background_image )) { - - img = _html2canvas.Generate.Gradient( background_image, _html2canvas.Util.Bounds( el ) ); - - if ( img !== undefined ){ - images[background_image] = { - img: img, - succeeded: true - }; - images.numTotal++; - images.numLoaded++; - start(); - - } - - } else { - src = _html2canvas.Util.backgroundImage(background_image.match(/data:image\/.*;base64,/i) ? background_image : background_image.split(",")[0]); - methods.loadImage(src); - } - - /* - if (background_image && background_image !== "1" && background_image !== "none" && background_image.substring(0,7) !== "-webkit" && background_image.substring(0,3)!== "-o-" && background_image.substring(0,4) !== "-moz"){ - // TODO add multi image background support - src = _html2canvas.Util.backgroundImage(background_image.split(",")[0]); - methods.loadImage(src); */ - } - } - } - - function setImageLoadHandlers(img, imageObj) { - img.onload = function() { - if ( imageObj.timer !== undefined ) { - // CORS succeeded - window.clearTimeout( imageObj.timer ); - } - - images.numLoaded++; - imageObj.succeeded = true; - img.onerror = img.onload = null; - start(); - }; - img.onerror = function() { - - if (img.crossOrigin === "anonymous") { - // CORS failed - window.clearTimeout( imageObj.timer ); - } - - - images.numLoaded++; - images.numFailed++; - imageObj.succeeded = false; - img.onerror = img.onload = null; - start(); - - }; - - // TODO Opera has no load/error event for SVG images - - // Opera ninja onload's cached images - /* - window.setTimeout(function(){ - if ( img.width !== 0 && imageObj.succeeded === undefined ) { - img.onload(); - } - }, 100); // needs a reflow for base64 encoded images? interestingly timeout of 0 doesn't work but 1 does. - */ - } - - - methods = { - loadImage: function( src ) { - var img, imageObj; - if ( src && images[src] === undefined ) { - img = new Image(); - if ( src.match(/data:image\/.*;base64,/i) ) { - img.src = src.replace(/url\(['"]{0,}|['"]{0,}\)$/ig, ''); - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - } else if ( isSameOrigin( src ) || options.allowTaint === true ) { - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - img.src = src; - } else if ( supportCORS && !options.allowTaint && options.useCORS ) { - // attempt to load with CORS - - img.crossOrigin = "anonymous"; - imageObj = images[src] = { - img: img - }; - images.numTotal++; - setImageLoadHandlers(img, imageObj); - img.src = src; - - // work around for https://bugs.webkit.org/show_bug.cgi?id=80028 - img.customComplete = function () { - if (!this.img.complete) { - this.timer = window.setTimeout(this.img.customComplete, 100); - } else { - this.img.onerror(); - } - }.bind(imageObj); - img.customComplete(); - } - } - - }, - cleanupDOM: function(cause) { - var img, src; - if (!images.cleanupDone) { - if (cause && typeof cause === "string") { - h2clog("html2canvas: Cleanup because: " + cause); - } else { - h2clog("html2canvas: Cleanup after timeout: " + options.timeout + " ms."); - } - - // cancel any pending requests - if(window.stop !== undefined) { - window.stop(); - } else if(document.execCommand !== undefined) { - document.execCommand("Stop", false); - } - if (document.close !== undefined) { - document.close(); - } - images.cleanupDone = true; - if (!(cause && typeof cause === "string")) { - start(); - } - } - }, - renderingDone: function() { - if (timeoutTimer) { - window.clearTimeout(timeoutTimer); - } - } - - }; - - if (options.timeout > 0) { - timeoutTimer = window.setTimeout(methods.cleanupDOM, options.timeout); - } - h2clog('html2canvas: Preload starts: finding background-images'); - images.firstRun = true; - - getImages( element ); - - h2clog('html2canvas: Preload: Finding images'); - // load images - for (i = 0; i < imgLen; i+=1){ - methods.loadImage( domImages[i].getAttribute( "src" ) ); - } - - images.firstRun = false; - h2clog('html2canvas: Preload: Done.'); - if ( images.numTotal === images.numLoaded ) { - start(); - } - - return methods; - - }; - - - - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - function h2cRenderContext(width, height) { - var storage = []; - return { - storage: storage, - width: width, - height: height, - fillRect: function () { - storage.push({ - type: "function", - name: "fillRect", - 'arguments': arguments - }); - }, - drawImage: function () { - storage.push({ - type: "function", - name: "drawImage", - 'arguments': arguments - }); - }, - fillText: function () { - storage.push({ - type: "function", - name: "fillText", - 'arguments': arguments - }); - }, - setVariable: function (variable, value) { - storage.push({ - type: "variable", - name: variable, - 'arguments': value - }); - } - }; - } - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - _html2canvas.Renderer = function(parseQueue, options){ - - - var queue = []; - - function sortZ(zStack){ - var subStacks = [], - stackValues = [], - zStackChildren = zStack.children, - s, - i, - stackLen, - zValue, - zLen, - stackChild, - b, - subStackLen; - - - for (s = 0, zLen = zStackChildren.length; s < zLen; s+=1){ - - stackChild = zStackChildren[s]; - - if (stackChild.children && stackChild.children.length > 0){ - subStacks.push(stackChild); - stackValues.push(stackChild.zindex); - }else{ - queue.push(stackChild); - } - - } - - stackValues.sort(function(a, b) { - return a - b; - }); - - for (i = 0, stackLen = stackValues.length; i < stackLen; i+=1){ - zValue = stackValues[i]; - for (b = 0, subStackLen = subStacks.length; b <= subStackLen; b+=1){ - - if (subStacks[b].zindex === zValue){ - stackChild = subStacks.splice(b, 1); - sortZ(stackChild[0]); - break; - - } - } - } - - } - - - sortZ(parseQueue.zIndex); - if ( typeof options._renderer._create !== "function" ) { - throw new Error("Invalid renderer defined"); - } - return options._renderer._create( parseQueue, options, document, queue, _html2canvas ); - - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - - html2canvas = function( elements, opts ) { - - var queue, - canvas, - options = { - // general - logging: false, - elements: elements, - - // preload options - timeout: 0, // no timeout - useCORS: false, // try to load images as CORS (where available) - allowTaint: false, // whether to allow images to taint the canvas - - // parse options - svgRendering: false, // use svg powered rendering where available (FF11+) - iframeDefault: "default", - ignoreElements: "IFRAME|OBJECT|PARAM", - useOverflow: true, - letterRendering: false, - - // render options - - flashcanvas: undefined, // path to flashcanvas - width: null, - height: null, - taintTest: true, // do a taint test with all images before applying to canvas - renderer: "Canvas" - }, renderer; - - options = _html2canvas.Util.Extend(opts, options); - - if (typeof options.renderer === "string" && _html2canvas.Renderer[options.renderer] !== undefined) { - options._renderer = _html2canvas.Renderer[options.renderer]( options ); - } else if (typeof options.renderer === "function") { - options._renderer = options.renderer( options ); - } else { - throw("Unknown renderer"); - } - - _html2canvas.logging = options.logging; - options.complete = function( images ) { - - if (typeof options.onpreloaded === "function") { - if ( options.onpreloaded( images ) === false ) { - return; - } - } - queue = _html2canvas.Parse( images, options ); - - if (typeof options.onparsed === "function") { - if ( options.onparsed( queue ) === false ) { - return; - } - } - - canvas = _html2canvas.Renderer( queue, options ); - - if (typeof options.onrendered === "function") { - options.onrendered( canvas ); - } - - - }; - - // for pages without images, we still want this to be async, i.e. return methods before executing - window.setTimeout( function(){ - _html2canvas.Preload( options ); - }, 0 ); - - return { - render: function( queue, opts ) { - return _html2canvas.Renderer( queue, _html2canvas.Util.Extend(opts, options) ); - }, - parse: function( images, opts ) { - return _html2canvas.Parse( images, _html2canvas.Util.Extend(opts, options) ); - }, - preload: function( opts ) { - return _html2canvas.Preload( _html2canvas.Util.Extend(opts, options) ); - }, - log: h2clog - }; - }; - - html2canvas.log = h2clog; // for renderers - html2canvas.Renderer = { - Canvas: undefined // We are assuming this will be used - }; - - /* - html2canvas v0.34 - Copyright (c) 2011 Niklas von Hertzen. All rights reserved. - http://www.twitter.com/niklasvh - - Released under MIT License - */ - - - _html2canvas.Renderer.Canvas = function( options ) { - - options = options || {}; - - var doc = document, - canvas = options.canvas || doc.createElement('canvas'), - usingFlashcanvas = false, - _createCalled = false, - canvasReadyToDraw = false, - methods, - flashMaxSize = 2880; // flash bitmap limited to 2880x2880px // http://stackoverflow.com/questions/2033792/argumenterror-error-2015-invalid-bitmapdata - - - if (canvas.getContext){ - h2clog("html2canvas: Renderer: using canvas renderer"); - canvasReadyToDraw = true; - } else if ( options.flashcanvas !== undefined ){ - usingFlashcanvas = true; - h2clog("html2canvas: Renderer: canvas not available, using flashcanvas"); - var script = doc.createElement("script"); - script.src = options.flashcanvas; - - script.onload = (function(script, func){ - var intervalFunc; - - if (script.onload === undefined) { - // IE lack of support for script onload - - if( script.onreadystatechange !== undefined ) { - - intervalFunc = function() { - if (script.readyState !== "loaded" && script.readyState !== "complete") { - window.setTimeout( intervalFunc, 250 ); - - } else { - // it is loaded - func(); - - } - - }; - - window.setTimeout( intervalFunc, 250 ); - - } else { - h2clog("html2canvas: Renderer: Can't track when flashcanvas is loaded"); - } - - } else { - return func; - } - - })(script, function(){ - - if (typeof window.FlashCanvas !== "undefined") { - h2clog("html2canvas: Renderer: Flashcanvas initialized"); - window.FlashCanvas.initElement( canvas ); - - canvasReadyToDraw = true; - if ( _createCalled !== false ) { - methods._create.apply( null, _createCalled ); - } - } - }); - - doc.body.appendChild( script ); - - } - - methods = { - _create: function( zStack, options, doc, queue, _html2canvas ) { - - if ( !canvasReadyToDraw ) { - _createCalled = arguments; - return canvas; - } - - var ctx = canvas.getContext("2d"), - storageContext, - i, - queueLen, - a, - newCanvas, - bounds, - testCanvas = document.createElement("canvas"), - hasCTX = ( testCanvas.getContext !== undefined ), - storageLen, - renderItem, - testctx = ( hasCTX ) ? testCanvas.getContext("2d") : {}, - safeImages = [], - fstyle; - - canvas.width = canvas.style.width = (!usingFlashcanvas) ? options.width || zStack.ctx.width : Math.min(flashMaxSize, (options.width || zStack.ctx.width) ); - canvas.height = canvas.style.height = (!usingFlashcanvas) ? options.height || zStack.ctx.height : Math.min(flashMaxSize, (options.height || zStack.ctx.height) ); - - fstyle = ctx.fillStyle; - ctx.fillStyle = zStack.backgroundColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.fillStyle = fstyle; - - if ( options.svgRendering && zStack.svgRender !== undefined ) { - // TODO: enable async rendering to support this - ctx.drawImage( zStack.svgRender, 0, 0 ); - } else { - for ( i = 0, queueLen = queue.length; i < queueLen; i+=1 ) { - - storageContext = queue.splice(0, 1)[0]; - storageContext.canvasPosition = storageContext.canvasPosition || {}; - - //this.canvasRenderContext(storageContext,parentctx); - - // set common settings for canvas - ctx.textBaseline = "bottom"; - - if (storageContext.clip){ - ctx.save(); - ctx.beginPath(); - // console.log(storageContext); - ctx.rect(storageContext.clip.left, storageContext.clip.top, storageContext.clip.width, storageContext.clip.height); - ctx.clip(); - - } - - if (storageContext.ctx.storage){ - - for (a = 0, storageLen = storageContext.ctx.storage.length; a < storageLen; a+=1){ - - renderItem = storageContext.ctx.storage[a]; - - - switch(renderItem.type){ - case "variable": - ctx[renderItem.name] = renderItem['arguments']; - break; - case "function": - if (renderItem.name === "fillRect") { - - if (!usingFlashcanvas || renderItem['arguments'][0] + renderItem['arguments'][2] < flashMaxSize && renderItem['arguments'][1] + renderItem['arguments'][3] < flashMaxSize) { - ctx.fillRect.apply( ctx, renderItem['arguments'] ); - } - }else if(renderItem.name === "fillText") { - if (!usingFlashcanvas || renderItem['arguments'][1] < flashMaxSize && renderItem['arguments'][2] < flashMaxSize) { - ctx.fillText.apply( ctx, renderItem['arguments'] ); - } - }else if(renderItem.name === "drawImage") { - - if (renderItem['arguments'][8] > 0 && renderItem['arguments'][7]){ - if ( hasCTX && options.taintTest ) { - if ( safeImages.indexOf( renderItem['arguments'][ 0 ].src ) === -1 ) { - testctx.drawImage( renderItem['arguments'][ 0 ], 0, 0 ); - try { - testctx.getImageData( 0, 0, 1, 1 ); - } catch(e) { - testCanvas = doc.createElement("canvas"); - testctx = testCanvas.getContext("2d"); - continue; - } - - safeImages.push( renderItem['arguments'][ 0 ].src ); - - } - } - ctx.drawImage.apply( ctx, renderItem['arguments'] ); - } - } - - - break; - default: - - } - - } - - } - if (storageContext.clip){ - ctx.restore(); - } - - } - } - - h2clog("html2canvas: Renderer: Canvas renderer done - returning canvas obj"); - - queueLen = options.elements.length; - - if (queueLen === 1) { - if (typeof options.elements[ 0 ] === "object" && options.elements[ 0 ].nodeName !== "BODY" && usingFlashcanvas === false) { - // crop image to the bounds of selected (single) element - bounds = _html2canvas.Util.Bounds( options.elements[ 0 ] ); - newCanvas = doc.createElement('canvas'); - newCanvas.width = bounds.width; - newCanvas.height = bounds.height; - ctx = newCanvas.getContext("2d"); - - ctx.drawImage( canvas, bounds.left, bounds.top, bounds.width, bounds.height, 0, 0, bounds.width, bounds.height ); - canvas = null; - return newCanvas; - } - } /*else { - // TODO clip and resize multiple elements - - for ( i = 0; i < queueLen; i+=1 ) { - if (options.elements[ i ] instanceof Element) { - - } - - } - } - */ - - - - return canvas; - } - }; - - return methods; - - }; - - window.html2canvas = html2canvas; - }(window, document)); - \ No newline at end of file diff --git a/assets/js/hamburger.js b/assets/js/hamburger.js new file mode 100644 index 0000000..b032ce5 --- /dev/null +++ b/assets/js/hamburger.js @@ -0,0 +1,5 @@ +function toggleNav() { + var nav = document.querySelector('nav ul'); + nav.style.left = nav.style.left === '0px' ? '-100%' : '0px'; + } + \ No newline at end of file