lazybox 0.0.8 → 0.0.9

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.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # LazyBox
2
2
 
3
- Lazybox is a jQuery-based, lightbox which can display entire remote pages.
4
- Use lazybox with rails 3.1 asset pipeline.
3
+ Lazybox is a jQuery-based, lightbox that can display entire remote pages and images.
4
+ Use lazybox with rails 3.1 assets pipeline.
5
5
 
6
- LazyBox implemented using only with css and jquery without images.
7
- This is high perfomance modal dialogs. All unpacked files take only 3 kb.
8
- You never find simplest solution for popup windows.
6
+ LazyBox implemented using only css and jquery without images.
7
+ This is high perfomance modal dialogs. All unpacked files take only 4 kb.
8
+ This is simplest solution for popup windows.
9
9
 
10
10
  # Installation
11
11
 
@@ -74,6 +74,10 @@ or you can set before_filter that will disable layout for ajax requests:
74
74
  $(document).trigger('close.lazybox')
75
75
  window.location.reload();
76
76
 
77
+ you can use lazybox for displaing images
78
+
79
+ - link_to 'Image', image.url, :rel => :lazybox
80
+
77
81
  # Options
78
82
 
79
83
  overlay: true|false //default true. Show lazybox overlay.
@@ -15,5 +15,6 @@ Gem::Specification.new do |s|
15
15
  s.require_path = "lib"
16
16
 
17
17
  s.add_development_dependency "rails", "~> 3.1"
18
+ s.add_development_dependency "jquery-rails"
18
19
  end
19
20
 
@@ -1,3 +1,3 @@
1
1
  module Lazybox
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -2,38 +2,34 @@
2
2
  $.fn.lazybox = function(options){
3
3
  var defaults = {overlay: true, esc: true, close: true, modal: true, opacity: 0.3};
4
4
  var options = $.extend(defaults, options);
5
-
5
+ var imagesRegexp = new RegExp('\\.(png|jpg|jpeg|gif)(\\?.*)?$', 'i')
6
6
  this.live('click', function(e){
7
+ var href = $(this).attr('href');
7
8
  e.preventDefault();
8
- if (options.overlay) {
9
- $('body:not(:has(#lazybox_overlay))').append("<div id='lazybox_overlay' style='display:none'></div>");
10
- $('#lazybox_overlay').css({filter: 'alpha(opacity='+options.opacity*100+')', opacity: options.opacity});
11
- $('#lazybox_overlay').fadeIn(500);
12
- }
13
-
14
- $.ajax({
15
- url: $(this).attr('href'),
16
- success: function(data){
17
- $('body:not(:has(#lazybox))').append("<div id='lazybox'><div id='lazybox_body'></div></div>");
18
- if (options.cssClass) { $('#lazybox').addClass(options.cssClass) } else { $('#lazybox').removeClass(); }
19
- if (options.close) {
20
- $('#lazybox:not(:has(#lazybox_close))').prepend($("<a id='lazybox_close' title='close'>×</a>"));
21
- if ($.browser.msie) $('#lazybox_close').addClass('ie');
22
- } else $('#lazybox_close').remove();
23
- $('#lazybox_body').html(data);
9
+ $('body:not(:has(#lazybox))').append("<div id='lazybox'><div id='lazybox_body'></div></div>");
10
+ apply_settings(options);
11
+ if (href.match(imagesRegexp)) {
12
+ var img = new Image()
13
+ img.onload = function() {
14
+ $('#lazybox_body').html('<img src="' + img.src + '" /></div>');
24
15
  center_lazybox();
25
16
  $('#lazybox').fadeIn(300);
26
- if (!options.modal) { $('#lazybox_overlay').bind('click', function(){ close_lazybox() }) } else { $('#lazybox_overlay').unbind(); }
27
- },
28
- error: function(){
29
- $('#lazybox_overlay').fadeOut(500);
30
17
  }
31
- });
18
+ img.src = href
19
+ } else {
20
+ $.ajax({
21
+ url: href,
22
+ success: function(data){
23
+ $('#lazybox_body').html(data);
24
+ center_lazybox();
25
+ $('#lazybox').fadeIn(300);
26
+ },
27
+ error: function(){
28
+ $('#lazybox_overlay').fadeOut(500);
29
+ }
30
+ });
31
+ }
32
32
  });
33
-
34
- if (options.close) $('#lazybox_close').live('click', function(){ close_lazybox() });
35
- if (!options.modal && options.overlay) { $('#lazybox_overlay').bind('click', function(){ close_lazybox() }) } else { $('#lazybox_overlay').unbind(); }
36
- $(document).keyup(function(e) { if (e.keyCode == 27 && options.esc) close_lazybox() });
37
33
  }
38
34
 
39
35
  function close_lazybox(){
@@ -46,6 +42,22 @@
46
42
  $('#lazybox').css({ top: ((x < 0) ? 20 : x), left:(($(window).width() - $('#lazybox').outerWidth()) / 2) + $(window).scrollLeft() });
47
43
  }
48
44
 
45
+ function apply_settings(options){
46
+ if (options.overlay) {
47
+ $('body:not(:has(#lazybox_overlay))').append("<div id='lazybox_overlay'></div>");
48
+ $('#lazybox_overlay').css({filter: 'alpha(opacity='+options.opacity*100+')', opacity: options.opacity});
49
+ $('#lazybox_overlay').fadeIn(500);
50
+ }
51
+ if (options.cssClass) { $('#lazybox').addClass(options.cssClass) } else { $('#lazybox').removeClass(); }
52
+ if (options.close) {
53
+ $('#lazybox:not(:has(#lazybox_close))').prepend($("<a id='lazybox_close' title='close'>×</a>"));
54
+ $('#lazybox_close').live('click', function(){ close_lazybox() });
55
+ if ($.browser.msie) $('#lazybox_close').addClass('ie');
56
+ } else $('#lazybox_close').remove();
57
+ if (!options.modal) { $('#lazybox_overlay').bind('click', function(){ close_lazybox() }) } else { $('#lazybox_overlay').unbind(); }
58
+ if (!options.modal && options.overlay) { $('#lazybox_overlay').bind('click', function(){ close_lazybox() }) } else { $('#lazybox_overlay').unbind(); }
59
+ $(document).keyup(function(e) { if (e.keyCode == 27 && options.esc) close_lazybox() });
60
+ }
61
+
49
62
  $(document).bind('close.lazybox', function(){ close_lazybox() });
50
63
  })(jQuery);
51
-
@@ -1,59 +1,62 @@
1
1
  #lazybox_overlay{
2
2
  background: black;
3
- position: fixed;
4
- top: 0px;
5
3
  bottom: 0px;
4
+ display: none;
6
5
  left: 0px;
6
+ position: fixed;
7
7
  right: 0px;
8
+ top: 0px;
8
9
  z-index: 100;
9
10
  }
10
11
 
11
12
  #lazybox{
12
- position: absolute;
13
- top: 10%;
14
- left: 30%;
15
13
  background-color: #fff;
14
+ border: 1px solid #ccc;
15
+ border-radius: 10px;
16
+ box-shadow: 0 1px 5px #333;
16
17
  color: #7F7F7F;
18
+ display: none;
19
+ left: 49%;
17
20
  padding: 20px;
18
- border: 1px solid #ccc;
21
+ position: absolute;
22
+ top: 49%;
23
+ z-index: 101;
19
24
  -moz-border-radius: 10px;
20
25
  -webkit-border-radius: 10px;
21
26
  -khtml-border-radius: 10px;
22
- min-width: 200px;
23
- min-height: 100px;
24
- border-radius: 10px;
25
27
  -moz-box-shadow: 0 1px 5px #333;
26
28
  -webkit-box-shadow: 0 1px 5px #333;
27
- box-shadow: 0 1px 5px #333;
28
- z-index: 101;
29
29
  }
30
30
 
31
31
  a#lazybox_close {
32
+ background: black;
33
+ border: 2px solid white;
34
+ border-radius: 20px;
35
+ box-shadow: 0 1px 5px #333;
32
36
  color: white;
33
- font: bold 24px/100% Arial, Helvetica, sans-serif !important;
37
+ cursor: pointer;
34
38
  float: right;
39
+ font: bold 26px/100% Arial, Helvetica, sans-serif !important;
40
+ height: 25px;
35
41
  margin-top: -35px;
36
42
  margin-right: -35px;
37
- cursor: pointer;
38
43
  text-align: center;
39
- border: 2px solid white;
40
- width: 24px;
41
- height: 24px;
42
- background: black;
43
- border-radius: 20px;
44
+ width: 25px;
45
+ -moz-border-radius: 20px;
46
+ -webkit-border-radius: 20px;
47
+ -khtml-border-radius: 20px;
44
48
  -moz-box-shadow: 0 1px 5px #333;
45
49
  -webkit-box-shadow: 0 1px 5px #333;
46
- box-shadow: 0 1px 5px #333;
47
50
  }
48
51
 
49
- a#lazybox_close:hover { color: black; border-color: black; background: white; }
52
+ a#lazybox_close:hover { background: white; border-color: black; color: black; }
50
53
 
51
54
  a#lazybox_close.ie {
52
- border: none;
53
- margin-top: -20px;
54
- margin-right: -20px;
55
55
  background: white;
56
+ border: none;
56
57
  color: gray;
58
+ margin-right: -20px;
59
+ margin-top: -20px;
57
60
  }
58
61
 
59
62
  a#lazybox_close.ie:hover { color: black; }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazybox
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 9
10
+ version: 0.0.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alex Galushka
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-07 00:00:00 Z
18
+ date: 2011-12-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rails
@@ -32,6 +32,20 @@ dependencies:
32
32
  version: "3.1"
33
33
  type: :development
34
34
  version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: jquery-rails
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
35
49
  description: This is high perfomance modal dialogs for your Rails application.
36
50
  email:
37
51
  - sexmcs@gmail.com