-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathretina-query.min.js
More file actions
44 lines (34 loc) · 2.91 KB
/
retina-query.min.js
File metadata and controls
44 lines (34 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
The MIT License (MIT)
Copyright (c) 2013 Rio Myers
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
How to use:
Add @2x to the end of each retina image in your website like this: "retinaimage@2x.png"
The script below will automatically change your images' src if a retina version is available with @2x
The width and height of the original image is automatically added to the HTML of the retina version
so there is no need to do this manually
Use http://retinize.it/ for a Photoshop shortcut to create retina versions of your images
To enable the script add script to the header or footer of your documents (wherever you keep your scripts)
<script>
//Apply retina query to all elements in the body a.k.a everything
$('body').retinaQuery();
//Disable retina on specific elements, of course you can change the class to anything you'd like
$('.noretina').retinaQuery({nope: true});
//Force retina on specific elements, of course you can change the class to anything you'd like
$('.forceretina').retinaQuery({force: true})
</script>
*/
(function(e,t,n,r){e.fn.retinaQuery=function(n){var r=!!t.devicePixelRatio?t.devicePixelRatio:1;var i=r>1;var s="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx), (min-resolution: 144dpi)";var o=t.matchMedia(s).matches;var u={force:false,nope:false,on:true};var a=e.extend(u,n);return this.each(function(){e(t).load(function(){e("img").each(function(){var t=e(this).attr("src").lastIndexOf("http://",0)!==0;var n=e(this).width();var r=e(this).height();if(a.force){if(t){e(this).attr("src",e(this).attr("src").replace(".","@2x."))}}if(a.on){if(i||o){if(t){e(this).attr("src",e(this).attr("src").replace(".","@2x."))}}}if(a.nope){if(t){e(this).attr("src",e(this).attr("src").replace("@2x.","."))}}e(this).attr({width:n,height:r});e(this).error(function(){e(this).attr("src",e(this).attr("src").replace("@2x.","."))})})})})}})(jQuery,window,document)