jquery-lionbars 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +1 -0
- data/jquery-lionbars.gemspec +25 -0
- data/lib/jquery-lionbars/engine.rb +6 -0
- data/lib/jquery-lionbars/version.rb +5 -0
- data/lib/jquery-lionbars.rb +3 -0
- data/vender/assets/javascripts/jquery-lionbars.js +1 -0
- data/vender/assets/stylesheets/jquery-lionbars.css +59 -0
- metadata +104 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# jQuery LionBars
|
2
|
+
|
3
|
+
Port jQuery plugin LionBars to a gem, works with asset pipeline.
|
4
|
+
|
5
|
+
Demo: [http://www.nikolaydyankov.com/lionbars/#demo](http://www.nikolaydyankov.com/lionbars/#demo)
|
6
|
+
|
7
|
+
Usage:
|
8
|
+
|
9
|
+
require js and stylesheets
|
10
|
+
|
11
|
+
require js:
|
12
|
+
|
13
|
+
//= require 'jquery-lionbars'
|
14
|
+
|
15
|
+
require scss:
|
16
|
+
|
17
|
+
@import 'jquery-lionbars';
|
18
|
+
|
19
|
+
use:
|
20
|
+
|
21
|
+
<script>
|
22
|
+
$('#div1').lionbars();
|
23
|
+
</script>
|
24
|
+
|
25
|
+
|
26
|
+
Options:
|
27
|
+
|
28
|
+
lionbars(color, showOnMouseOver, visibleBar, visibleBg)
|
29
|
+
|
30
|
+
color: Either "light" or "dark". Choose wisely! Defaults to "dark".
|
31
|
+
showOnMouseOver: When the mouse moves over the content element, the scrollbar is shown. Defaults to false.
|
32
|
+
visibleBar: Scrollbar is always visible. Defaults to false.
|
33
|
+
visibleBg: Full length scrollbar (or scrollbar background) is always visible. Defaults to false.
|
34
|
+
|
35
|
+
|
36
|
+
see more detail from: [http://www.nikolaydyankov.com/lionbars](http://www.nikolaydyankov.com/lionbars)
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jquery-lionbars/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jquery-lionbars"
|
7
|
+
s.version = Jquery::Lionbars::VERSION
|
8
|
+
s.authors = ["Allen Wei"]
|
9
|
+
s.email = ["digruby@gmail.com"]
|
10
|
+
s.homepage = "http://www.nikolaydyankov.com/lionbars/"
|
11
|
+
s.summary = %q{http://www.nikolaydyankov.com/lionbars}
|
12
|
+
s.description = %q{http://www.nikolaydyankov.com/lionbars}
|
13
|
+
|
14
|
+
s.rubyforge_project = "jquery-lionbars"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "rails", ">= 3.1.0"
|
24
|
+
s.add_runtime_dependency "jquery-rails"
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
(function(a){a.fn.lionbars=function(b,c,d,e){function F(b,c){var b=a(b);content=b.html();b.html("");b.append('<div class="nWrap" id="'+c+'"></div>');nWrap=b.find(".nWrap");a(nWrap).html(content);var d=b.css("padding-top");var e=b.css("padding-right");var f=b.css("padding-bottom");var g=b.css("padding-left");d=parseInt(d.replace("px",""));e=parseInt(e.replace("px",""));f=parseInt(f.replace("px",""));g=parseInt(g.replace("px",""));b.css({padding:0,width:b.width()+g+e,height:b.height()+d+f,overflow:"hidden",position:"relative"});nWrap.css({"padding-top":d,"padding-left":g,"padding-bottom":f,"padding-right":e,width:b.width()-g-e,height:b.height()-d-f})}function E(b){var c=new Array;var d=0;var b=a(b);var e,f;b.css({overflow:"auto"});b.prepend('<div class="nCheck"></div>');b.find(".nCheck").css({width:"100%",height:1,opacity:1,background:"red"});if(b.width()>b.find(".nCheck").width()){d=d+1;e=b.width()-b.find(".nCheck").width()}b.find(".nCheck").css({width:1,height:"100%"});if(b.height()>b.find(".nCheck").height()){d=d+2;f=b.height()-b.find(".nCheck").height()}b.find(".nCheck").remove();return[d,e,f]}function D(c,f,g,h){var i='<div class="scrollbar vertical nbar"></div><div class="scrollbar_bg vertical nbar"></div>';var j='<div class="scrollbar horizontal nbar"></div><div class="scrollbar_bg horizontal nbar"></div>';var c=a(c);var k=c.find(".nWrap");if(f==1){c.prepend(i);k.css({width:k.width()+g});k.addClass("vscroll")}if(f==2){c.prepend(j);k.css({height:k.height()+h});k.addClass("hscroll")}if(f==3){c.prepend(i);c.prepend(j);k.css({width:k.width()+g});k.css({height:k.height()+h});k.addClass("vscroll");k.addClass("hscroll")}var l=25;var m=c.find(".nWrap")[0].scrollHeight;var n=c.find(".nWrap")[0].scrollWidth;var o=c.height();var p=c.width();if(k.hasClass("vscroll")){n=n+15}if(k.hasClass("hscroll")){m=m+15}var h=o*(o/m);var g=p*(p/n);h=h<l?l:h;g=g<l?l:g;c.find(".scrollbar.vertical").css({height:h});c.find(".scrollbar.horizontal").css({width:g});if(k.hasClass("hscroll")){c.find(".scrollbar_bg.vertical").css({height:c.find(".scrollbar_bg.vertical").height()-13})}else{c.find(".scrollbar_bg.vertical").css({height:c.find(".scrollbar_bg.vertical").height()-4})}if(k.hasClass("vscroll")){c.find(".scrollbar_bg.horizontal").css({width:c.find(".scrollbar_bg.horizontal").width()-13})}else{c.find(".scrollbar_bg.horizontal").css({width:c.find(".scrollbar_bg.horizontal").width()-4})}if(b=="light"){c.find(".scrollbar").addClass("light");c.find(".scrollbar_bg").addClass("light")}else{c.find(".scrollbar").addClass("dark");c.find(".scrollbar_bg").addClass("dark")}if(d){c.find(".scrollbar").css({opacity:1})}if(e){c.find(".scrollbar_bg").css({opacity:1})}}function C(b){var b=a(b);var c=b.find(".nWrap");if(c.hasClass("hscroll")){var d=c.siblings(".scrollbar.vertical");var e=(b.height()-9-d.height()-2)/(c[0].scrollHeight-b.height())}else{var d=c.siblings(".scrollbar.vertical");var e=(b.height()-d.height()-2)/(c[0].scrollHeight-b.height())}c.attr("scrollfactorV",e);if(c.hasClass("vscroll")){var f=c.siblings(".scrollbar.horizontal");var g=(b.width()-9-f.width()-2)/(c[0].scrollWidth-b.width())}else{var f=c.siblings(".scrollbar.horizontal");var g=(b.width()-f.width()-2)/(c[0].scrollWidth-b.width())}c.attr("scrollfactorH",g)}function B(a,b,c,d,e,f,g,h,i,j,k){var l,m,n,o;if(a.hasClass("vertical")){o=g+k-i;m=o;m=m<2?2:m;m=m>a.siblings(".scrollbar_bg.vertical").height()-a.height()+2?a.siblings(".scrollbar_bg.vertical").height()-a.height()+2:m;a.css({top:m});b.scrollTop(o/d)}else{n=f+j-h;l=n;l=l<2?2:l;l=l>a.siblings(".scrollbar_bg.horizontal").width()-a.width()+2?a.siblings(".scrollbar_bg.horizontal").width()-a.width()+2:l;a.css({left:l});b.scrollLeft(n/e)}}var f=a(this);var g=0;f.each(function(){var b=a(this);var c=E(b);g+=1;if(c!=0){F(b,g);D(b,c[0],c[1],c[2]);C(b)}});var h,i,j,k;var l=false,m=0,n,o;var p=false,q=false,r,s,t,u,v,w,x,y;var z=false,A=true;a(".nWrap").mouseover(function(){if(c){a(this).siblings(".scrollbar").stop().animate({opacity:1},200)}});a(".nWrap").mouseout(function(){var b=a(this);if(!l&&!p){l=true;setTimeout(function(){m=0;l=false;if(c){a(".nbar").stop().animate({opacity:0},400)}if(!c&&d){b.siblings(".scrollbar_bg").stop().animate({opacity:0},400)}},1e3)}});a(".nWrap").scroll(function(b){if(!p){if(a(m).attr("id")!=a(this).attr("id")){m=a(this);if(!d){m.siblings(".scrollbar").stop().animate({opacity:1},200)}n=m.attr("scrollfactorV");o=m.attr("scrollfactorH");h=m.siblings(".scrollbar.vertical");i=m.siblings(".scrollbar.horizontal")}j=m.scrollTop()*n;j=j<2?2:j;h.css({top:j});k=m.scrollLeft()*o;k=k<2?2:k;i.css({left:k});if(!l&&!d){l=true;setTimeout(function(){m=0;l=false;a(".nbar").stop().animate({opacity:0},400)},1e3)}}});a(".scrollbar").mouseover(function(b){target=a(this);if(!e){target.siblings(".scrollbar_bg").stop().animate({opacity:1},400)}if(!d){target.add(target.siblings(".scrollbar")).stop().animate({opacity:1},400)}z=true});a(".scrollbar").mouseout(function(b){z=false;if(!l&&!p){l=true;setTimeout(function(){l=false;if(!z&&!d){a(".nbar").stop().animate({opacity:0},400)}else if(!z&&!e){a(".scrollbar_bg").stop().animate({opacity:0},400)}},1e3)}});a(".scrollbar").mousedown(function(b){b.preventDefault();p=true;r=a(this);v=b.pageX;w=b.pageY;t=a(this).position().left;u=a(this).position().top});a(document).mousemove(function(a){if(p&&!q){q=true;s=r.siblings(".nWrap");o=s.attr("scrollfactorh");n=s.attr("scrollfactorv")}if(p){x=a.pageX;y=a.pageY;B(r,s,a,n,o,t,u,v,w,x,y)}});a(document).mouseup(function(b){if(p){p=false;q=false;if(!l&&!p){l=true;setTimeout(function(){l=false;if(!z&&!d){a(".nbar").stop().animate({opacity:0},400)}else if(!z&&!e){a(".scrollbar_bg").stop().animate({opacity:0},400)}},1e3)}}});return this.each(function(){var b=a(this)})}})(jQuery)
|
@@ -0,0 +1,59 @@
|
|
1
|
+
.scrollbar {
|
2
|
+
position: absolute;
|
3
|
+
content: "";
|
4
|
+
display: block;
|
5
|
+
border-radius: 100px;
|
6
|
+
opacity: 0;
|
7
|
+
z-index: 100;
|
8
|
+
}
|
9
|
+
|
10
|
+
.vertical {
|
11
|
+
width: 7px;
|
12
|
+
right: 2px;
|
13
|
+
top: 2px;
|
14
|
+
}
|
15
|
+
|
16
|
+
.horizontal {
|
17
|
+
height: 7px;
|
18
|
+
bottom: 2px;
|
19
|
+
left: 2px;
|
20
|
+
}
|
21
|
+
|
22
|
+
.scrollbar_bg {
|
23
|
+
position: absolute;
|
24
|
+
content: "";
|
25
|
+
display: block;
|
26
|
+
border-radius: 100px;
|
27
|
+
opacity: 0;
|
28
|
+
z-index: 99;
|
29
|
+
}
|
30
|
+
|
31
|
+
.scrollbar_bg.horizontal {
|
32
|
+
width: 100%;
|
33
|
+
}
|
34
|
+
|
35
|
+
.scrollbar_bg.vertical {
|
36
|
+
height: 100%;
|
37
|
+
}
|
38
|
+
|
39
|
+
.scrollbar.light {
|
40
|
+
background: rgba(255,255,255,0.5);
|
41
|
+
}
|
42
|
+
|
43
|
+
.scrollbar_bg.light {
|
44
|
+
background: rgba(255,255,255,0.10);
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
.scrollbar.dark {
|
49
|
+
background: rgba(0,0,0,0.3);
|
50
|
+
}
|
51
|
+
|
52
|
+
.scrollbar_bg.dark {
|
53
|
+
background: rgba(0,0,0,0.10);
|
54
|
+
}
|
55
|
+
|
56
|
+
.nWrap {
|
57
|
+
overflow: auto;
|
58
|
+
display: inline-block;
|
59
|
+
}
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jquery-lionbars
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Allen Wei
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-11-28 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rails
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 3
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
version: 3.1.0
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: jquery-rails
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
description: http://www.nikolaydyankov.com/lionbars
|
51
|
+
email:
|
52
|
+
- digruby@gmail.com
|
53
|
+
executables: []
|
54
|
+
|
55
|
+
extensions: []
|
56
|
+
|
57
|
+
extra_rdoc_files: []
|
58
|
+
|
59
|
+
files:
|
60
|
+
- .gitignore
|
61
|
+
- Gemfile
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- jquery-lionbars.gemspec
|
65
|
+
- lib/jquery-lionbars.rb
|
66
|
+
- lib/jquery-lionbars/engine.rb
|
67
|
+
- lib/jquery-lionbars/version.rb
|
68
|
+
- vender/assets/javascripts/jquery-lionbars.js
|
69
|
+
- vender/assets/stylesheets/jquery-lionbars.css
|
70
|
+
homepage: http://www.nikolaydyankov.com/lionbars/
|
71
|
+
licenses: []
|
72
|
+
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
|
76
|
+
require_paths:
|
77
|
+
- lib
|
78
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 3
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
version: "0"
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 3
|
93
|
+
segments:
|
94
|
+
- 0
|
95
|
+
version: "0"
|
96
|
+
requirements: []
|
97
|
+
|
98
|
+
rubyforge_project: jquery-lionbars
|
99
|
+
rubygems_version: 1.8.11
|
100
|
+
signing_key:
|
101
|
+
specification_version: 3
|
102
|
+
summary: http://www.nikolaydyankov.com/lionbars
|
103
|
+
test_files: []
|
104
|
+
|