lazybox 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -3,7 +3,7 @@ LazyBox
3
3
 
4
4
  [Live Demo](http://lazybox.herokuapp.com/)
5
5
 
6
- [Demo Source](https://github.com/alex-galushka/lazybox_demo)
6
+ [Demo Source](https://github.com/galulex/lazybox_demo)
7
7
 
8
8
  Lazybox is a jQuery-based, lightbox that can display entire remote pages, images and confirmation dialogs.
9
9
  Replace standard rails confirmations with lazybox just added several rows to your project. Use lazybox with rails assets pipeline.
@@ -1,3 +1,3 @@
1
1
  module Lazybox
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -34,7 +34,7 @@
34
34
 
35
35
  close: (speed) ->
36
36
  speed = speed || defaults.speed
37
- effect = if box.position().top == 0 then 'slideUp' else 'fadeOut'
37
+ effect = if (box.position().top - window.scrollY == 0) then 'slideUp' else 'fadeOut'
38
38
  box[effect](speed)
39
39
  overlay.fadeOut(speed+200)
40
40
 
@@ -69,9 +69,13 @@
69
69
  img.onload = (element) ->
70
70
  options = $.lazybox.show(img, options)
71
71
  nextLink = if a.is(':last-child') then a.siblings('a[rel*=lazybox]:first') else a.next('a[rel*=lazybox]:first')
72
- if nextLink.length != 0
73
- $('#lazybox img').bind 'click', () =>
74
- box.fadeOut(options.speed, () -> nextLink.click())
72
+ prevLink = if a.is(':first-child') then a.siblings('a[rel*=lazybox]:last') else a.prev('a[rel*=lazybox]:first')
73
+ if nextLink.length and prevLink.length
74
+ $('#lazybox_body:not(:has(a#next_lazy_img))').append("<a id='prev_lazy_img' href=''><b>‹</b></a><a id='next_lazy_img' href=''><b>›</b></a>")
75
+ $('#next_lazy_img, #prev_lazy_img').bind 'click', (event) ->
76
+ event.preventDefault()
77
+ box.fadeOut options.speed, () ->
78
+ if event.currentTarget.id == 'next_lazy_img' then nextLink.click() else prevLink.click()
75
79
  $(img).attr({ 'class': 'lazy_img', src: href })
76
80
  else
77
81
  $.ajax({
@@ -1,3 +1,4 @@
1
+ // Generated by CoffeeScript 1.4.0
1
2
  (function() {
2
3
 
3
4
  (function($) {
@@ -38,7 +39,7 @@
38
39
  close: function(speed) {
39
40
  var effect;
40
41
  speed = speed || defaults.speed;
41
- effect = box.position().top === 0 ? 'slideUp' : 'fadeOut';
42
+ effect = box.position().top - window.scrollY === 0 ? 'slideUp' : 'fadeOut';
42
43
  box[effect](speed);
43
44
  return overlay.fadeOut(speed + 200);
44
45
  },
@@ -46,7 +47,9 @@
46
47
  var y;
47
48
  if (fixed) {
48
49
  y = onTop ? 0 : (box.outerHeight()) / 2;
49
- if (y < 20 && !onTop) y = 20;
50
+ if (y < 20 && !onTop) {
51
+ y = 20;
52
+ }
50
53
  return box.css({
51
54
  'margin-left': -box.outerWidth() / 2,
52
55
  'margin-top': -y,
@@ -56,7 +59,9 @@
56
59
  });
57
60
  } else {
58
61
  y = onTop ? 0 : (($(window).height() - $('#lazybox').outerHeight()) / 2) + $(window).scrollTop();
59
- if (y < 20 && !onTop) y = 20;
62
+ if (y < 20 && !onTop) {
63
+ y = 20;
64
+ }
60
65
  return box.css({
61
66
  top: y,
62
67
  left: (($(window).width() - box.outerWidth()) / 2) + $(window).scrollLeft(),
@@ -69,7 +74,9 @@
69
74
  var message, options;
70
75
  options = $.extend(defaults, $.lazybox.settings);
71
76
  message = element.data('confirm');
72
- if (!message) return true;
77
+ if (!message) {
78
+ return true;
79
+ }
73
80
  $.lazybox.show('<p>' + message + '</p><div class="lazy_buttons"></div>', {
74
81
  klass: 'confirm'
75
82
  });
@@ -94,14 +101,20 @@
94
101
  if (href.match(imagesRegexp)) {
95
102
  img = new Image();
96
103
  img.onload = function(element) {
97
- var nextLink,
98
- _this = this;
104
+ var nextLink, prevLink;
99
105
  options = $.lazybox.show(img, options);
100
106
  nextLink = a.is(':last-child') ? a.siblings('a[rel*=lazybox]:first') : a.next('a[rel*=lazybox]:first');
101
- if (nextLink.length !== 0) {
102
- return $('#lazybox img').bind('click', function() {
107
+ prevLink = a.is(':first-child') ? a.siblings('a[rel*=lazybox]:last') : a.prev('a[rel*=lazybox]:first');
108
+ if (nextLink.length && prevLink.length) {
109
+ $('#lazybox_body:not(:has(a#next_lazy_img))').append("<a id='prev_lazy_img' href=''><b>‹</b></a><a id='next_lazy_img' href=''><b>›</b></a>");
110
+ return $('#next_lazy_img, #prev_lazy_img').bind('click', function(event) {
111
+ event.preventDefault();
103
112
  return box.fadeOut(options.speed, function() {
104
- return nextLink.click();
113
+ if (event.currentTarget.id === 'next_lazy_img') {
114
+ return nextLink.click();
115
+ } else {
116
+ return prevLink.click();
117
+ }
105
118
  });
106
119
  });
107
120
  }
@@ -160,7 +173,9 @@
160
173
  overlay.unbind();
161
174
  }
162
175
  $(document).keyup(function(e) {
163
- if (e.keyCode === 27 && options.esc) return $.lazybox.close(options.speed);
176
+ if (e.keyCode === 27 && options.esc) {
177
+ return $.lazybox.close(options.speed);
178
+ }
164
179
  });
165
180
  box.on('click', '#lazybox_close, .lazy_buttons a', function(e) {
166
181
  $.lazybox.close(options.speed);
@@ -22,14 +22,15 @@
22
22
  z-index: 1001;
23
23
  &.confirm { max-width: 300px; }
24
24
  .lazy_buttons { margin-top: 15px; text-align: right; }
25
- img.lazy_img { cursor: pointer; }
25
+ img.lazy_img { display: block; }
26
+ #lazybox_body { position: relative; }
26
27
  }
27
28
 
28
29
  a#lazybox_close {
29
30
  background: transparent;
30
31
  color: gray;
31
32
  cursor: pointer;
32
- font: bold 26px/100% Arial, Helvetica, sans-serif !important;
33
+ font: bold 26px/100% Arial, Helvetica, sans-serif;
33
34
  height: 25px;
34
35
  position: absolute;
35
36
  right: 0;
@@ -38,3 +39,28 @@ a#lazybox_close {
38
39
  width: 25px;
39
40
  &:hover { color: black; }
40
41
  }
42
+
43
+ a#prev_lazy_img, a#next_lazy_img {
44
+ background: rgba(0, 0, 0, 0);
45
+ height: 100%;
46
+ outline: none;
47
+ position: absolute;
48
+ top: 0;
49
+ text-decoration: none;
50
+ width: 33px;
51
+ &:hover {
52
+ background: rgba(0, 0, 0, 0.3);
53
+ b { opacity: 0.8; }
54
+ }
55
+ b {
56
+ color: whiteSmoke;
57
+ font: bold 96px/100% Arial, Helvetica, sans-serif;
58
+ height: 100px;
59
+ opacity: 0.3;
60
+ position: absolute;
61
+ top: 50%;
62
+ margin-top: -50px;
63
+ }
64
+ }
65
+
66
+ a#next_lazy_img { right: 0; }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazybox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-09 00:00:00.000000000 Z
12
+ date: 2012-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &19446660 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *19446660
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: jquery-rails
27
- requirement: &19446240 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *19446240
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: Lazybox is a jQuery-based, lightbox that can display entire remote pages,
37
47
  images and confirmation dialogs. Replace standard rails confirmations with lazybox
38
48
  just added several rows to your project. Use lazybox with rails assets pipeline.
@@ -45,8 +55,8 @@ files:
45
55
  - README.md
46
56
  - lib/lazybox.rb
47
57
  - lib/lazybox/version.rb
48
- - vendor/assets/javascripts/lazybox.js.coffee
49
58
  - vendor/assets/javascripts/lazybox.js.js
59
+ - vendor/assets/javascripts/lazybox.js.coffee
50
60
  - vendor/assets/stylesheets/lazybox.css.scss
51
61
  homepage: https://github.com/galulex/lazybox
52
62
  licenses: []
@@ -68,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
78
  version: '0'
69
79
  requirements: []
70
80
  rubyforge_project:
71
- rubygems_version: 1.8.11
81
+ rubygems_version: 1.8.23
72
82
  signing_key:
73
83
  specification_version: 3
74
84
  summary: Use LazyBox for popup windows with Rails