responsive_image_tag 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +33 -1
- data/VERSION +1 -1
- data/lib/rails/generators/responsive_image_tag/javascript/javascript_generator.rb +1 -1
- data/lib/rails/generators/responsive_image_tag/javascript/templates/responsive-image-tag.js +33 -11
- data/lib/responsive_image_tag.rb +5 -2
- data/responsive_image_tag.gemspec +2 -2
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -1,6 +1,38 @@
|
|
1
1
|
= responsive_image_tag
|
2
2
|
|
3
|
-
|
3
|
+
== Installation
|
4
|
+
|
5
|
+
Put it in your Gemfile:
|
6
|
+
|
7
|
+
gem 'responsive_image_tag'
|
8
|
+
|
9
|
+
Then install it:
|
10
|
+
|
11
|
+
bundle install
|
12
|
+
|
13
|
+
There's a generator which copies a JavaScript file into place in @public/javascripts@.
|
14
|
+
|
15
|
+
You can run it like this:
|
16
|
+
|
17
|
+
|
18
|
+
=== Rails 3
|
19
|
+
|
20
|
+
rails generate responsive_image_tag
|
21
|
+
|
22
|
+
=== Rails 2
|
23
|
+
|
24
|
+
script/generate responsive_image_tag
|
25
|
+
|
26
|
+
|
27
|
+
== Usage
|
28
|
+
|
29
|
+
You need to do two things. First, make sure that you include a reference to the JavaScript file in your layout:
|
30
|
+
|
31
|
+
<%= javascript_include_tag "responsive-image-tag" %>
|
32
|
+
|
33
|
+
After that, you can use the new tag like so, in a view:
|
34
|
+
|
35
|
+
<%= responsive_image_tag("small.jpg", "big.jpg") %>
|
4
36
|
|
5
37
|
== Contributing to responsive_image_tag
|
6
38
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
@@ -1,18 +1,40 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
//responsiveImageTag detects all noscript elements on the page with a class of responsivize.
|
2
|
+
|
3
|
+
//It retrieves both HTML5 data attributes and then creates an image tag with the correct source
|
4
|
+
//destination depending on the available screen width of the users device. This way smaller
|
5
|
+
//images are sent to mobile devices or any device smaller than 768px.
|
6
|
+
|
7
|
+
//The noscript tags are then removed from the page.
|
8
|
+
var responsiveImageTag = new function() {
|
9
|
+
this.replaceInitialImages = function() {
|
10
|
+
var platform = "desktop";
|
3
11
|
var responsiveImages = $$(".responsivize");
|
4
12
|
var i,
|
5
13
|
noOfresponsiveImages = responsiveImages.length;
|
6
|
-
|
7
|
-
for
|
8
|
-
|
9
|
-
|
10
|
-
responsiveImages[i].previous().appendChild(newImg);
|
11
|
-
responsiveImages[i].style.display = "none";
|
14
|
+
|
15
|
+
//test for available width in current browser window
|
16
|
+
if(screen.width <= 767){ //767px, anything smaller than an ipad is considered mobile
|
17
|
+
platform = "mobile";
|
12
18
|
}
|
13
|
-
|
14
|
-
}
|
15
19
|
|
20
|
+
//set initial source element on image
|
21
|
+
for(i = 0; i < noOfresponsiveImages; i = i + 1 ){
|
22
|
+
var noScriptElem = responsiveImages[i];
|
23
|
+
var img = window.document.createElement("img");
|
24
|
+
|
25
|
+
if(platform === "mobile"){
|
26
|
+
img.src = noScriptElem.getAttribute("data-mobilesrc");
|
27
|
+
}else{
|
28
|
+
img.src = noScriptElem.getAttribute("data-fullsrc");
|
29
|
+
}
|
30
|
+
|
31
|
+
img.className = "responsive";
|
32
|
+
noScriptElem.previous().appendChild(img);
|
33
|
+
noScriptElem.style.display = "none";
|
34
|
+
}
|
35
|
+
};
|
36
|
+
}
|
16
37
|
document.observe("dom:loaded", function() {
|
17
|
-
|
38
|
+
responsiveImageTag.replaceInitialImages();
|
18
39
|
})
|
40
|
+
|
data/lib/responsive_image_tag.rb
CHANGED
@@ -8,8 +8,11 @@ module ResponsiveImageTag
|
|
8
8
|
#
|
9
9
|
def responsive_image_tag(small, big, options = {})
|
10
10
|
output = tag "span", {:class => "img-placeholder"}
|
11
|
-
output += tag "/span"
|
12
|
-
output += tag "noscript", {
|
11
|
+
output += tag "/span", nil, true
|
12
|
+
output += tag "noscript", {
|
13
|
+
"data-fullsrc" => image_path(big),
|
14
|
+
"data-mobilesrc" => image_path(small),
|
15
|
+
:class => "responsivize"}, true
|
13
16
|
output += image_tag(small, options)
|
14
17
|
output += tag "/noscript", nil, true
|
15
18
|
output
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{responsive_image_tag}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dave Hrycyszyn"]
|
12
|
-
s.date = %q{2011-08-
|
12
|
+
s.date = %q{2011-08-17}
|
13
13
|
s.description = %q{Allows you to specify two images in a responsive_image_tag, and includes a javascript generator which will rewrite the DOM, requesting the correct image based on the screen size of the current client device.}
|
14
14
|
s.email = %q{dave.hrycyszyn@headlondon.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: responsive_image_tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dave Hrycyszyn
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|