limarquee-rails 1.0.0
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.
- checksums.yaml +7 -0
- data/Dockerfile +35 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +43 -0
- data/lib/limarquee-rails/version.rb +5 -0
- data/lib/limarquee-rails.rb +9 -0
- data/limarquee-rails.gemspec +25 -0
- data/vendor/assets/javascripts/limarquee-rails.js +1309 -0
- data/vendor/assets/stylesheets/limarquee-rails.css +55 -0
- metadata +96 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5cf9c90d35f6c334f41fe7ae40c63b03508a684e
|
4
|
+
data.tar.gz: ab69862202e5e5d2f421205d84f3c9f05f2a748b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 37eed70dcab8ce40ca51ee4f401500d7d2aec5cd799e1ca681d23bdf36cba42c29324c14767583b576c00db1d26539394bb83cf896a87494e2cea65ef2089bbb
|
7
|
+
data.tar.gz: 47d3f1229b15d0fdfa6aaf1c1de3f8bc469f3143b8a5c87b082f92a7311ca6c9b15e86f163e0d527035231090125db67e04a910fefc316f20ec1e0007620ca4a
|
data/Dockerfile
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# How to use it
|
2
|
+
# =============
|
3
|
+
#
|
4
|
+
# Visit http://blog.zedroot.org/using-docker-to-maintain-a-ruby-gem/
|
5
|
+
|
6
|
+
# ~~~~ Image base ~~~~
|
7
|
+
# Base image with the latest Ruby only
|
8
|
+
FROM litaio/ruby:2.2.2
|
9
|
+
MAINTAINER Guillaume Hain zedtux@zedroot.org
|
10
|
+
|
11
|
+
|
12
|
+
# ~~~~ Set up the environment ~~~~
|
13
|
+
ENV DEBIAN_FRONTEND noninteractive
|
14
|
+
|
15
|
+
# ~~~~ OS Maintenance ~~~~
|
16
|
+
RUN apt-get update && apt-get install -y git
|
17
|
+
|
18
|
+
# ~~~~ Rails Preparation ~~~~
|
19
|
+
# Rubygems and Bundler
|
20
|
+
RUN touch ~/.gemrc && \
|
21
|
+
echo "gem: --no-ri --no-rdoc" >> ~/.gemrc && \
|
22
|
+
gem install rubygems-update && \
|
23
|
+
update_rubygems && \
|
24
|
+
gem install bundler && \
|
25
|
+
mkdir -p /gem/
|
26
|
+
|
27
|
+
WORKDIR /gem/
|
28
|
+
ADD . /gem/
|
29
|
+
RUN bundle install
|
30
|
+
|
31
|
+
# Import the gem source code
|
32
|
+
VOLUME .:/gem/
|
33
|
+
|
34
|
+
ENTRYPOINT ["bundle", "exec"]
|
35
|
+
CMD ["rake", "-T"]
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Sammerset
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Limarquee-Rails
|
2
|
+
|
3
|
+
This Gem integrates https://github.com/omcg33/jquery.limarquee.
|
4
|
+
|
5
|
+
It integrates this fork with your Rails project and is versioned to track the fork's version.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'limarquee-rails'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install limarquee-rails
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
This gem uses a Rails Engine to make JQuery ticker assets available to you.
|
24
|
+
|
25
|
+
Require the JavaScript files from your `application.js` or wherever needed using:
|
26
|
+
|
27
|
+
```
|
28
|
+
//= require limarquee-rails
|
29
|
+
```
|
30
|
+
|
31
|
+
Require the CSS files from your `application.scss` or wherever needed using:
|
32
|
+
|
33
|
+
```
|
34
|
+
*= require limarquee-rails
|
35
|
+
```
|
36
|
+
|
37
|
+
## Contributing
|
38
|
+
|
39
|
+
1. Fork it
|
40
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
41
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
42
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
43
|
+
5. Create new Pull Request
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'limarquee-rails/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'limarquee-rails'
|
8
|
+
spec.version = LimarqueeRails::Rails::VERSION
|
9
|
+
spec.authors = ['Sammerset']
|
10
|
+
spec.email = ['sammerset@ukr.net']
|
11
|
+
spec.description = %q{Make JQuery Limarquee available to Rails}
|
12
|
+
spec.summary = %q{This Gem integrates omcg33 fork of JQuery Limarquee
|
13
|
+
with Rails, exposing its JavaScript and CSS assets via
|
14
|
+
a Rails Engine.}
|
15
|
+
spec.homepage = 'http://github.com/sammerset/limarquee-rails'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
|
18
|
+
spec.files = `git ls-files`.split($/)
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.require_paths = ['lib']
|
21
|
+
|
22
|
+
spec.add_dependency 'railties', '>= 3.2'
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
24
|
+
spec.add_development_dependency 'rake'
|
25
|
+
end
|
@@ -0,0 +1,1309 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery liMarquee v 4.6
|
3
|
+
*
|
4
|
+
* Copyright 2013, Linnik Yura | LI MASS CODE | http://masscode.ru
|
5
|
+
* http://masscode.ru/index.php/k2/item/44-limarquee
|
6
|
+
* Free to use
|
7
|
+
*
|
8
|
+
* Last Update 20.11.2014
|
9
|
+
*/
|
10
|
+
(function ($) {
|
11
|
+
var methods = {
|
12
|
+
init: function (options) {
|
13
|
+
var p = {
|
14
|
+
direction: 'left', //Указывает направление движения содержимого контейнера (left | right | up | down)
|
15
|
+
loop: -1, //Задает, сколько раз будет прокручиваться содержимое. "-1" для бесконечного воспроизведения движения
|
16
|
+
scrolldelay: 0, //Величина задержки в миллисекундах между движениями
|
17
|
+
scrollamount: 50, //Скорость движения контента (px/sec)
|
18
|
+
circular: true, //Если "true" - строка непрерывная
|
19
|
+
drag: true, //Если "true" - включено перетаскивание строки
|
20
|
+
runshort: true, //Если "true" - короткая строка тоже "бегает", "false" - стоит на месте
|
21
|
+
hoverstop: true, //true - строка останавливается при наведении курсора мыши, false - строка не останавливается
|
22
|
+
inverthover: false, //false - стандартное поведение. Если "true" - строка начинает движение только при наведении курсора
|
23
|
+
xml: false //Путь к xml файлу с нужным текстом
|
24
|
+
};
|
25
|
+
if (options) {
|
26
|
+
$.extend(p, options);
|
27
|
+
}
|
28
|
+
|
29
|
+
return this.each(function () {
|
30
|
+
var enterEvent = 'mouseenter';
|
31
|
+
var leaveEvent = 'mouseleave';
|
32
|
+
if(p.inverthover){
|
33
|
+
enterEvent = 'mouseleave';
|
34
|
+
leaveEvent = 'mouseenter';
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
var
|
39
|
+
loop = p.loop,
|
40
|
+
strWrap = $(this).addClass('str_wrap').data({scrollamount:p.scrollamount}),
|
41
|
+
fMove = false;
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
var strWrapStyle = strWrap.attr('style');
|
46
|
+
|
47
|
+
if(strWrapStyle){
|
48
|
+
var wrapStyleArr = strWrapStyle.split(';');
|
49
|
+
var startHeight = false;
|
50
|
+
for(var i=0; i < wrapStyleArr.length; i++){
|
51
|
+
var str = $.trim(wrapStyleArr[i]);
|
52
|
+
var tested = str.search(/^height/g);
|
53
|
+
if(tested != -1){
|
54
|
+
startHeight = parseFloat(strWrap.css('height'));
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
var code = function () {
|
60
|
+
|
61
|
+
strWrap.off('mouseleave');
|
62
|
+
strWrap.off('mouseenter');
|
63
|
+
strWrap.off('mousemove');
|
64
|
+
strWrap.off('mousedown');
|
65
|
+
strWrap.off('mouseup');
|
66
|
+
|
67
|
+
|
68
|
+
if(!$('.str_move',strWrap).length){
|
69
|
+
strWrap.wrapInner($('<div>').addClass('str_move'));
|
70
|
+
}
|
71
|
+
|
72
|
+
var
|
73
|
+
strMove = $('.str_move', strWrap).addClass('str_origin'),
|
74
|
+
strMoveClone = strMove.clone().removeClass('str_origin').addClass('str_move_clone'),
|
75
|
+
time = 0;
|
76
|
+
|
77
|
+
if (!p.hoverstop) {
|
78
|
+
strWrap.addClass('noStop');
|
79
|
+
}
|
80
|
+
|
81
|
+
var circCloneHor = function(){
|
82
|
+
strMoveClone.clone().css({
|
83
|
+
left:'100%',
|
84
|
+
right:'auto',
|
85
|
+
width: strMove.width()
|
86
|
+
}).appendTo(strMove);
|
87
|
+
strMoveClone.css({
|
88
|
+
right: '100%',
|
89
|
+
left:'auto',
|
90
|
+
width: strMove.width()
|
91
|
+
}).appendTo(strMove);
|
92
|
+
}
|
93
|
+
|
94
|
+
var circCloneVert = function(){
|
95
|
+
strMoveClone.clone().css({
|
96
|
+
top: '100%',
|
97
|
+
bottom:'auto',
|
98
|
+
height: strMove.height()
|
99
|
+
}).appendTo(strMove);
|
100
|
+
strMoveClone.css({
|
101
|
+
bottom: '100%',
|
102
|
+
top:'auto',
|
103
|
+
height:strMove.height()
|
104
|
+
}).appendTo(strMove);
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
if (p.direction == 'left') {
|
110
|
+
strWrap.height(strMove.outerHeight())
|
111
|
+
if (strMove.width() > strWrap.width()) {
|
112
|
+
var leftPos = -strMove.width();
|
113
|
+
|
114
|
+
if (p.circular) {
|
115
|
+
|
116
|
+
if (!p.xml) {
|
117
|
+
circCloneHor()
|
118
|
+
leftPos = -(strMove.width() + (strMove.width() - strWrap.width()));
|
119
|
+
}
|
120
|
+
}
|
121
|
+
if (p.xml) {
|
122
|
+
strMove.css({
|
123
|
+
left:strWrap.width()
|
124
|
+
})
|
125
|
+
}
|
126
|
+
var
|
127
|
+
strMoveLeft = strWrap.width(),
|
128
|
+
k1 = 0,
|
129
|
+
timeFunc1 = function () {
|
130
|
+
var
|
131
|
+
fullS = Math.abs(leftPos),
|
132
|
+
time = (fullS / strWrap.data('scrollamount')) * 1000;
|
133
|
+
if (parseFloat(strMove.css('left')) != 0) {
|
134
|
+
fullS = (fullS + strWrap.width());
|
135
|
+
time = (fullS - (strWrap.width() - parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000;
|
136
|
+
}
|
137
|
+
return time;
|
138
|
+
},
|
139
|
+
moveFuncId1 = false,
|
140
|
+
moveFunc1 = function () {
|
141
|
+
if (loop != 0) {
|
142
|
+
strMove.stop(true).animate({
|
143
|
+
left: leftPos
|
144
|
+
}, timeFunc1(), 'linear', function () {
|
145
|
+
$(this).css({
|
146
|
+
left: strWrap.width()
|
147
|
+
});
|
148
|
+
if (loop == -1) {
|
149
|
+
moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
|
150
|
+
} else {
|
151
|
+
loop--;
|
152
|
+
moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
|
153
|
+
}
|
154
|
+
});
|
155
|
+
}
|
156
|
+
};
|
157
|
+
strWrap.data({
|
158
|
+
moveId: moveFuncId1 ,
|
159
|
+
moveF : moveFunc1
|
160
|
+
})
|
161
|
+
if(!p.inverthover){
|
162
|
+
moveFunc1();
|
163
|
+
}
|
164
|
+
|
165
|
+
if (p.hoverstop) {
|
166
|
+
strWrap.on(enterEvent, function () {
|
167
|
+
$(this).addClass('str_active');
|
168
|
+
clearTimeout(moveFuncId1);
|
169
|
+
strMove.stop(true);
|
170
|
+
}).on(leaveEvent, function () {
|
171
|
+
$(this).removeClass('str_active');
|
172
|
+
$(this).off('mousemove');
|
173
|
+
moveFunc1();
|
174
|
+
});
|
175
|
+
|
176
|
+
if (p.drag) {
|
177
|
+
strWrap.on('mousedown', function (e) {
|
178
|
+
if(p.inverthover){
|
179
|
+
strMove.stop(true);
|
180
|
+
}
|
181
|
+
//drag
|
182
|
+
var dragLeft;
|
183
|
+
var dir = 1;
|
184
|
+
var newX;
|
185
|
+
var oldX = e.clientX;
|
186
|
+
//drag
|
187
|
+
|
188
|
+
strMoveLeft = strMove.position().left;
|
189
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
$(this).on('mousemove', function (e) {
|
194
|
+
fMove = true;
|
195
|
+
|
196
|
+
//drag
|
197
|
+
newX = e.clientX;
|
198
|
+
if(newX > oldX){
|
199
|
+
dir = 1
|
200
|
+
}else{
|
201
|
+
dir = -1
|
202
|
+
}
|
203
|
+
oldX = newX
|
204
|
+
dragLeft = k1 + (e.clientX - strWrap.offset().left);
|
205
|
+
|
206
|
+
if (!p.circular) {
|
207
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
208
|
+
dragLeft = strWrap.width();
|
209
|
+
strMoveLeft = strMove.position().left;
|
210
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
211
|
+
}
|
212
|
+
if(dragLeft > strWrap.width() && dir > 0){
|
213
|
+
dragLeft = -strMove.width();
|
214
|
+
strMoveLeft = strMove.position().left;
|
215
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
216
|
+
}
|
217
|
+
}else{
|
218
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
219
|
+
dragLeft = 0;
|
220
|
+
strMoveLeft = strMove.position().left;
|
221
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
222
|
+
}
|
223
|
+
if(dragLeft > 0 && dir > 0){
|
224
|
+
dragLeft = -strMove.width();
|
225
|
+
strMoveLeft = strMove.position().left;
|
226
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
227
|
+
}
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
|
232
|
+
strMove.stop(true).css({
|
233
|
+
left: dragLeft
|
234
|
+
});
|
235
|
+
//drag
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
}).on('mouseup', function () {
|
240
|
+
$(this).off('mousemove');
|
241
|
+
if(p.inverthover){
|
242
|
+
strMove.trigger('mouseenter')
|
243
|
+
}
|
244
|
+
setTimeout(function () {
|
245
|
+
fMove = false
|
246
|
+
}, 50)
|
247
|
+
|
248
|
+
});
|
249
|
+
return false;
|
250
|
+
})
|
251
|
+
.on('click', function () {
|
252
|
+
if (fMove) {
|
253
|
+
return false
|
254
|
+
}
|
255
|
+
});
|
256
|
+
} else {
|
257
|
+
strWrap.addClass('no_drag');
|
258
|
+
};
|
259
|
+
}
|
260
|
+
} else {
|
261
|
+
if (p.runshort) {
|
262
|
+
strMove.css({
|
263
|
+
left: strWrap.width()
|
264
|
+
});
|
265
|
+
var
|
266
|
+
strMoveLeft = strWrap.width(),
|
267
|
+
k1 = 0,
|
268
|
+
timeFunc = function () {
|
269
|
+
time = (strMove.width() + strMove.position().left) / strWrap.data('scrollamount') * 1000;
|
270
|
+
return time;
|
271
|
+
};
|
272
|
+
var moveFunc = function () {
|
273
|
+
var leftPos = -strMove.width();
|
274
|
+
strMove.animate({
|
275
|
+
left: leftPos
|
276
|
+
}, timeFunc(), 'linear', function () {
|
277
|
+
$(this).css({
|
278
|
+
left: strWrap.width()
|
279
|
+
});
|
280
|
+
if (loop == -1) {
|
281
|
+
setTimeout(moveFunc, p.scrolldelay);
|
282
|
+
} else {
|
283
|
+
loop--;
|
284
|
+
setTimeout(moveFunc, p.scrolldelay);
|
285
|
+
}
|
286
|
+
});
|
287
|
+
};
|
288
|
+
strWrap.data({
|
289
|
+
moveF : moveFunc
|
290
|
+
})
|
291
|
+
if(!p.inverthover){
|
292
|
+
moveFunc();
|
293
|
+
}
|
294
|
+
if (p.hoverstop) {
|
295
|
+
strWrap.on(enterEvent, function () {
|
296
|
+
$(this).addClass('str_active');
|
297
|
+
strMove.stop(true);
|
298
|
+
}).on(leaveEvent, function () {
|
299
|
+
$(this).removeClass('str_active');
|
300
|
+
$(this).off('mousemove');
|
301
|
+
moveFunc();
|
302
|
+
});
|
303
|
+
|
304
|
+
if (p.drag) {
|
305
|
+
strWrap.on('mousedown', function (e) {
|
306
|
+
if(p.inverthover){
|
307
|
+
strMove.stop(true);
|
308
|
+
}
|
309
|
+
|
310
|
+
//drag
|
311
|
+
var dragLeft;
|
312
|
+
var dir = 1;
|
313
|
+
var newX;
|
314
|
+
var oldX = e.clientX;
|
315
|
+
//drag
|
316
|
+
|
317
|
+
strMoveLeft = strMove.position().left;
|
318
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
319
|
+
$(this).on('mousemove', function (e) {
|
320
|
+
fMove = true;
|
321
|
+
|
322
|
+
|
323
|
+
//drag
|
324
|
+
newX = e.clientX;
|
325
|
+
if(newX > oldX){
|
326
|
+
dir = 1
|
327
|
+
}else{
|
328
|
+
dir = -1
|
329
|
+
}
|
330
|
+
oldX = newX
|
331
|
+
dragLeft = k1 + (e.clientX - strWrap.offset().left);
|
332
|
+
|
333
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
334
|
+
dragLeft = strWrap.width();
|
335
|
+
strMoveLeft = strMove.position().left;
|
336
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
337
|
+
}
|
338
|
+
if(dragLeft > strWrap.width() && dir > 0){
|
339
|
+
dragLeft = -strMove.width();
|
340
|
+
strMoveLeft = strMove.position().left;
|
341
|
+
k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
342
|
+
}
|
343
|
+
|
344
|
+
|
345
|
+
strMove.stop(true).css({
|
346
|
+
left: dragLeft
|
347
|
+
});
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
}).on('mouseup', function () {
|
352
|
+
if(p.inverthover){
|
353
|
+
strMove.trigger('mouseenter')
|
354
|
+
}
|
355
|
+
$(this).off('mousemove');
|
356
|
+
setTimeout(function () {
|
357
|
+
fMove = false
|
358
|
+
}, 50)
|
359
|
+
});
|
360
|
+
return false;
|
361
|
+
})
|
362
|
+
.on('click', function () {
|
363
|
+
if (fMove) {
|
364
|
+
return false
|
365
|
+
}
|
366
|
+
});
|
367
|
+
} else {
|
368
|
+
strWrap.addClass('no_drag');
|
369
|
+
};
|
370
|
+
}
|
371
|
+
} else {
|
372
|
+
strWrap.addClass('str_static');
|
373
|
+
}
|
374
|
+
};
|
375
|
+
};
|
376
|
+
if (p.direction == 'right') {
|
377
|
+
strWrap.height(strMove.outerHeight())
|
378
|
+
strWrap.addClass('str_right');
|
379
|
+
strMove.css({
|
380
|
+
left: -strMove.width(),
|
381
|
+
right: 'auto'
|
382
|
+
})
|
383
|
+
|
384
|
+
if (strMove.width() > strWrap.width()) {
|
385
|
+
var leftPos = strWrap.width();
|
386
|
+
strMove.css({
|
387
|
+
left: 0
|
388
|
+
})
|
389
|
+
if (p.circular) {
|
390
|
+
if (!p.xml) {
|
391
|
+
circCloneHor()
|
392
|
+
//Определяем крайнюю точку
|
393
|
+
leftPos = strMove.width();
|
394
|
+
}
|
395
|
+
}
|
396
|
+
|
397
|
+
var
|
398
|
+
k2 = 0;
|
399
|
+
timeFunc = function () {
|
400
|
+
var
|
401
|
+
fullS = strWrap.width(), //крайняя точка
|
402
|
+
time = (fullS / strWrap.data('scrollamount')) * 1000; //время
|
403
|
+
if (parseFloat(strMove.css('left')) != 0) {
|
404
|
+
fullS = (strMove.width() + strWrap.width());
|
405
|
+
time = (fullS - (strMove.width() + parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000;
|
406
|
+
}
|
407
|
+
return time;
|
408
|
+
};
|
409
|
+
var moveFunc = function () {
|
410
|
+
|
411
|
+
if (loop != 0) {
|
412
|
+
strMove.animate({
|
413
|
+
left: leftPos
|
414
|
+
}, timeFunc(), 'linear', function () {
|
415
|
+
$(this).css({
|
416
|
+
left: -strMove.width()
|
417
|
+
});
|
418
|
+
if (loop == -1) {
|
419
|
+
setTimeout(moveFunc, p.scrolldelay);
|
420
|
+
} else {
|
421
|
+
loop--;
|
422
|
+
setTimeout(moveFunc, p.scrolldelay);
|
423
|
+
};
|
424
|
+
});
|
425
|
+
};
|
426
|
+
};
|
427
|
+
strWrap.data({
|
428
|
+
moveF : moveFunc
|
429
|
+
})
|
430
|
+
|
431
|
+
if(!p.inverthover){
|
432
|
+
moveFunc();
|
433
|
+
}
|
434
|
+
if (p.hoverstop) {
|
435
|
+
strWrap.on(enterEvent, function () {
|
436
|
+
$(this).addClass('str_active');
|
437
|
+
strMove.stop(true);
|
438
|
+
}).on(leaveEvent, function () {
|
439
|
+
$(this).removeClass('str_active');
|
440
|
+
$(this).off('mousemove');
|
441
|
+
moveFunc();
|
442
|
+
});
|
443
|
+
|
444
|
+
if (p.drag) {
|
445
|
+
|
446
|
+
strWrap.on('mousedown', function (e) {
|
447
|
+
if(p.inverthover){
|
448
|
+
strMove.stop(true);
|
449
|
+
}
|
450
|
+
|
451
|
+
|
452
|
+
//drag
|
453
|
+
var dragLeft;
|
454
|
+
var dir = 1;
|
455
|
+
var newX;
|
456
|
+
var oldX = e.clientX;
|
457
|
+
//drag
|
458
|
+
|
459
|
+
strMoveLeft = strMove.position().left;
|
460
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
461
|
+
$(this).on('mousemove', function (e) {
|
462
|
+
|
463
|
+
fMove = true;
|
464
|
+
|
465
|
+
//drag
|
466
|
+
newX = e.clientX;
|
467
|
+
if(newX > oldX){
|
468
|
+
dir = 1
|
469
|
+
}else{
|
470
|
+
dir = -1
|
471
|
+
}
|
472
|
+
oldX = newX
|
473
|
+
dragLeft = k2 + (e.clientX - strWrap.offset().left);
|
474
|
+
|
475
|
+
|
476
|
+
if (!p.circular) {
|
477
|
+
|
478
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
479
|
+
dragLeft = strWrap.width();
|
480
|
+
strMoveLeft = strMove.position().left;
|
481
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
482
|
+
}
|
483
|
+
if(dragLeft > strWrap.width() && dir > 0){
|
484
|
+
dragLeft = -strMove.width();
|
485
|
+
strMoveLeft = strMove.position().left;
|
486
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
487
|
+
}
|
488
|
+
}else{
|
489
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
490
|
+
dragLeft = 0;
|
491
|
+
strMoveLeft = strMove.position().left;
|
492
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
493
|
+
}
|
494
|
+
if(dragLeft > 0 && dir > 0){
|
495
|
+
dragLeft = -strMove.width();
|
496
|
+
strMoveLeft = strMove.position().left;
|
497
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
498
|
+
}
|
499
|
+
|
500
|
+
}
|
501
|
+
|
502
|
+
strMove.stop(true).css({
|
503
|
+
left: dragLeft
|
504
|
+
});
|
505
|
+
|
506
|
+
|
507
|
+
}).on('mouseup', function () {
|
508
|
+
if(p.inverthover){
|
509
|
+
strMove.trigger('mouseenter')
|
510
|
+
}
|
511
|
+
$(this).off('mousemove');
|
512
|
+
setTimeout(function () {
|
513
|
+
fMove = false
|
514
|
+
}, 50)
|
515
|
+
});
|
516
|
+
return false;
|
517
|
+
})
|
518
|
+
.on('click', function () {
|
519
|
+
if (fMove) {
|
520
|
+
return false
|
521
|
+
}
|
522
|
+
});
|
523
|
+
} else {
|
524
|
+
strWrap.addClass('no_drag');
|
525
|
+
};
|
526
|
+
}
|
527
|
+
} else {
|
528
|
+
|
529
|
+
if (p.runshort) {
|
530
|
+
|
531
|
+
var k2 = 0;
|
532
|
+
var timeFunc = function () {
|
533
|
+
time = (strWrap.width() - strMove.position().left) / strWrap.data('scrollamount') * 1000;
|
534
|
+
return time;
|
535
|
+
};
|
536
|
+
var moveFunc = function () {
|
537
|
+
var leftPos = strWrap.width();
|
538
|
+
strMove.animate({
|
539
|
+
left: leftPos
|
540
|
+
}, timeFunc(), 'linear', function () {
|
541
|
+
$(this).css({
|
542
|
+
left: -strMove.width()
|
543
|
+
});
|
544
|
+
if (loop == -1) {
|
545
|
+
setTimeout(moveFunc, p.scrolldelay);
|
546
|
+
} else {
|
547
|
+
loop--;
|
548
|
+
setTimeout(moveFunc, p.scrolldelay);
|
549
|
+
};
|
550
|
+
});
|
551
|
+
};
|
552
|
+
|
553
|
+
strWrap.data({
|
554
|
+
moveF : moveFunc
|
555
|
+
})
|
556
|
+
|
557
|
+
if(!p.inverthover){
|
558
|
+
moveFunc();
|
559
|
+
}
|
560
|
+
if (p.hoverstop) {
|
561
|
+
strWrap.on(enterEvent, function () {
|
562
|
+
$(this).addClass('str_active');
|
563
|
+
strMove.stop(true);
|
564
|
+
}).on(leaveEvent, function () {
|
565
|
+
$(this).removeClass('str_active');
|
566
|
+
$(this).off('mousemove');
|
567
|
+
moveFunc();
|
568
|
+
});
|
569
|
+
|
570
|
+
if (p.drag) {
|
571
|
+
strWrap.on('mousedown', function (e) {
|
572
|
+
if(p.inverthover){
|
573
|
+
strMove.stop(true);
|
574
|
+
}
|
575
|
+
|
576
|
+
//drag
|
577
|
+
var dragLeft;
|
578
|
+
var dir = 1;
|
579
|
+
var newX;
|
580
|
+
var oldX = e.clientX;
|
581
|
+
//drag
|
582
|
+
|
583
|
+
strMoveLeft = strMove.position().left;
|
584
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
585
|
+
$(this).on('mousemove', function (e) {
|
586
|
+
fMove = true;
|
587
|
+
|
588
|
+
|
589
|
+
|
590
|
+
//drag
|
591
|
+
newX = e.clientX;
|
592
|
+
if(newX > oldX){
|
593
|
+
dir = 1
|
594
|
+
}else{
|
595
|
+
dir = -1
|
596
|
+
}
|
597
|
+
oldX = newX
|
598
|
+
dragLeft = k2 + (e.clientX - strWrap.offset().left);
|
599
|
+
|
600
|
+
if(dragLeft < -strMove.width() && dir < 0){
|
601
|
+
dragLeft = strWrap.width();
|
602
|
+
strMoveLeft = strMove.position().left;
|
603
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
604
|
+
}
|
605
|
+
if(dragLeft > strWrap.width() && dir > 0){
|
606
|
+
dragLeft = -strMove.width();
|
607
|
+
strMoveLeft = strMove.position().left;
|
608
|
+
k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
|
609
|
+
}
|
610
|
+
|
611
|
+
strMove.stop(true).css({
|
612
|
+
left:dragLeft
|
613
|
+
});
|
614
|
+
|
615
|
+
}).on('mouseup', function () {
|
616
|
+
if(p.inverthover){
|
617
|
+
strMove.trigger('mouseenter')
|
618
|
+
}
|
619
|
+
$(this).off('mousemove');
|
620
|
+
setTimeout(function () {
|
621
|
+
fMove = false
|
622
|
+
}, 50)
|
623
|
+
});
|
624
|
+
return false;
|
625
|
+
})
|
626
|
+
.on('click', function () {
|
627
|
+
if (fMove) {
|
628
|
+
return false
|
629
|
+
}
|
630
|
+
});
|
631
|
+
} else {
|
632
|
+
strWrap.addClass('no_drag');
|
633
|
+
};
|
634
|
+
}
|
635
|
+
} else {
|
636
|
+
strWrap.addClass('str_static');
|
637
|
+
}
|
638
|
+
};
|
639
|
+
};
|
640
|
+
if (p.direction == 'up') {
|
641
|
+
strWrap.addClass('str_vertical');
|
642
|
+
|
643
|
+
if (strMove.height() > strWrap.height()) {
|
644
|
+
var topPos = -strMove.height();
|
645
|
+
if (p.circular) {
|
646
|
+
if (!p.xml) {
|
647
|
+
circCloneVert();
|
648
|
+
topPos = -(strMove.height() + (strMove.height() - strWrap.height()));
|
649
|
+
}
|
650
|
+
}
|
651
|
+
if (p.xml) {
|
652
|
+
strMove.css({
|
653
|
+
top:strWrap.height()
|
654
|
+
})
|
655
|
+
}
|
656
|
+
var
|
657
|
+
k2 = 0;
|
658
|
+
timeFunc = function () {
|
659
|
+
var
|
660
|
+
fullS = Math.abs(topPos),
|
661
|
+
time = (fullS / strWrap.data('scrollamount')) * 1000;
|
662
|
+
if (parseFloat(strMove.css('top')) != 0) {
|
663
|
+
fullS = (fullS + strWrap.height());
|
664
|
+
time = (fullS - (strWrap.height() - parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000;
|
665
|
+
}
|
666
|
+
|
667
|
+
return time;
|
668
|
+
};
|
669
|
+
var moveFunc = function () {
|
670
|
+
if (loop != 0) {
|
671
|
+
strMove.animate({
|
672
|
+
top: topPos
|
673
|
+
}, timeFunc(), 'linear', function () {
|
674
|
+
$(this).css({
|
675
|
+
top: strWrap.height()
|
676
|
+
});
|
677
|
+
if (loop == -1) {
|
678
|
+
setTimeout(moveFunc, p.scrolldelay);
|
679
|
+
} else {
|
680
|
+
loop--;
|
681
|
+
setTimeout(moveFunc, p.scrolldelay);
|
682
|
+
};
|
683
|
+
});
|
684
|
+
};
|
685
|
+
};
|
686
|
+
|
687
|
+
strWrap.data({
|
688
|
+
moveF : moveFunc
|
689
|
+
})
|
690
|
+
|
691
|
+
if(!p.inverthover){
|
692
|
+
moveFunc();
|
693
|
+
}
|
694
|
+
if (p.hoverstop) {
|
695
|
+
strWrap.on(enterEvent, function () {
|
696
|
+
$(this).addClass('str_active');
|
697
|
+
strMove.stop(true);
|
698
|
+
}).on(leaveEvent, function () {
|
699
|
+
$(this).removeClass('str_active');
|
700
|
+
$(this).off('mousemove');
|
701
|
+
moveFunc();
|
702
|
+
});
|
703
|
+
|
704
|
+
if (p.drag) {
|
705
|
+
strWrap.on('mousedown', function (e) {
|
706
|
+
if(p.inverthover){
|
707
|
+
strMove.stop(true);
|
708
|
+
}
|
709
|
+
|
710
|
+
//drag
|
711
|
+
var dragTop;
|
712
|
+
var dir = 1;
|
713
|
+
var newY;
|
714
|
+
var oldY = e.clientY;
|
715
|
+
//drag
|
716
|
+
|
717
|
+
|
718
|
+
strMoveTop = strMove.position().top;
|
719
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
720
|
+
$(this).on('mousemove', function (e) {
|
721
|
+
|
722
|
+
fMove = true;
|
723
|
+
|
724
|
+
//drag
|
725
|
+
newY = e.clientY;
|
726
|
+
if(newY > oldY){
|
727
|
+
dir = 1
|
728
|
+
}else{
|
729
|
+
if(newY < oldY){
|
730
|
+
dir = -1
|
731
|
+
}
|
732
|
+
}
|
733
|
+
oldY = newY
|
734
|
+
dragTop = k2 + e.clientY - strWrap.offset().top;
|
735
|
+
|
736
|
+
|
737
|
+
if (!p.circular){
|
738
|
+
if(dragTop < -strMove.height() && dir < 0){
|
739
|
+
dragTop = strWrap.height();
|
740
|
+
strMoveTop = strMove.position().top;
|
741
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
742
|
+
}
|
743
|
+
if(dragTop > strWrap.height() && dir > 0){
|
744
|
+
dragTop = -strMove.height();
|
745
|
+
strMoveTop = strMove.position().top;
|
746
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
747
|
+
}
|
748
|
+
}else{
|
749
|
+
if(dragTop < -strMove.height() && dir < 0){
|
750
|
+
dragTop = 0;
|
751
|
+
strMoveTop = strMove.position().top;
|
752
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
753
|
+
}
|
754
|
+
if(dragTop > 0 && dir > 0){
|
755
|
+
dragTop = -strMove.height();
|
756
|
+
strMoveTop = strMove.position().top;
|
757
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
758
|
+
}
|
759
|
+
}
|
760
|
+
|
761
|
+
|
762
|
+
strMove.stop(true).css({
|
763
|
+
top: dragTop
|
764
|
+
});
|
765
|
+
//drag
|
766
|
+
|
767
|
+
|
768
|
+
|
769
|
+
|
770
|
+
|
771
|
+
|
772
|
+
|
773
|
+
|
774
|
+
|
775
|
+
|
776
|
+
|
777
|
+
|
778
|
+
}).on('mouseup', function () {
|
779
|
+
if(p.inverthover){
|
780
|
+
strMove.trigger('mouseenter')
|
781
|
+
}
|
782
|
+
$(this).off('mousemove');
|
783
|
+
setTimeout(function () {
|
784
|
+
fMove = false
|
785
|
+
}, 50)
|
786
|
+
});
|
787
|
+
return false;
|
788
|
+
})
|
789
|
+
.on('click', function () {
|
790
|
+
if (fMove) {
|
791
|
+
return false
|
792
|
+
}
|
793
|
+
});
|
794
|
+
} else {
|
795
|
+
strWrap.addClass('no_drag');
|
796
|
+
};
|
797
|
+
}
|
798
|
+
} else {
|
799
|
+
if (p.runshort) {
|
800
|
+
strMove.css({
|
801
|
+
top: strWrap.height()
|
802
|
+
});
|
803
|
+
var k2 = 0;
|
804
|
+
var timeFunc = function () {
|
805
|
+
|
806
|
+
time = (strMove.height() + strMove.position().top) / strWrap.data('scrollamount') * 1000;
|
807
|
+
|
808
|
+
return time;
|
809
|
+
};
|
810
|
+
var moveFunc = function () {
|
811
|
+
var topPos = -strMove.height();
|
812
|
+
strMove.animate({
|
813
|
+
top: topPos
|
814
|
+
}, timeFunc(), 'linear', function () {
|
815
|
+
$(this).css({
|
816
|
+
top: strWrap.height()
|
817
|
+
});
|
818
|
+
if (loop == -1) {
|
819
|
+
setTimeout(moveFunc, p.scrolldelay);
|
820
|
+
} else {
|
821
|
+
loop--;
|
822
|
+
setTimeout(moveFunc, p.scrolldelay);
|
823
|
+
};
|
824
|
+
});
|
825
|
+
};
|
826
|
+
strWrap.data({
|
827
|
+
moveF : moveFunc
|
828
|
+
})
|
829
|
+
if(!p.inverthover){
|
830
|
+
moveFunc();
|
831
|
+
}
|
832
|
+
if (p.hoverstop) {
|
833
|
+
strWrap.on(enterEvent, function () {
|
834
|
+
$(this).addClass('str_active');
|
835
|
+
strMove.stop(true);
|
836
|
+
}).on(leaveEvent, function () {
|
837
|
+
$(this).removeClass('str_active');
|
838
|
+
$(this).off('mousemove');
|
839
|
+
moveFunc();
|
840
|
+
});
|
841
|
+
|
842
|
+
if (p.drag) {
|
843
|
+
strWrap.on('mousedown', function (e) {
|
844
|
+
if(p.inverthover){
|
845
|
+
strMove.stop(true);
|
846
|
+
}
|
847
|
+
|
848
|
+
//drag
|
849
|
+
var dragTop;
|
850
|
+
var dir = 1;
|
851
|
+
var newY;
|
852
|
+
var oldY = e.clientY;
|
853
|
+
//drag
|
854
|
+
|
855
|
+
strMoveTop = strMove.position().top;
|
856
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
857
|
+
$(this).on('mousemove', function (e) {
|
858
|
+
|
859
|
+
|
860
|
+
fMove = true;
|
861
|
+
|
862
|
+
//drag
|
863
|
+
newY = e.clientY;
|
864
|
+
if(newY > oldY){
|
865
|
+
dir = 1
|
866
|
+
}else{
|
867
|
+
if(newY < oldY){
|
868
|
+
dir = -1
|
869
|
+
}
|
870
|
+
}
|
871
|
+
oldY = newY
|
872
|
+
dragTop = k2 + e.clientY - strWrap.offset().top;
|
873
|
+
|
874
|
+
if(dragTop < -strMove.height() && dir < 0){
|
875
|
+
dragTop = strWrap.height();
|
876
|
+
strMoveTop = strMove.position().top;
|
877
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
878
|
+
}
|
879
|
+
if(dragTop > strWrap.height() && dir > 0){
|
880
|
+
dragTop = -strMove.height();
|
881
|
+
strMoveTop = strMove.position().top;
|
882
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
883
|
+
}
|
884
|
+
//*drag
|
885
|
+
|
886
|
+
strMove.stop(true).css({
|
887
|
+
top: dragTop
|
888
|
+
});
|
889
|
+
|
890
|
+
|
891
|
+
}).on('mouseup', function () {
|
892
|
+
if(p.inverthover){
|
893
|
+
strMove.trigger('mouseenter')
|
894
|
+
}
|
895
|
+
$(this).off('mousemove');
|
896
|
+
setTimeout(function () {
|
897
|
+
fMove = false
|
898
|
+
}, 50)
|
899
|
+
});
|
900
|
+
return false;
|
901
|
+
})
|
902
|
+
.on('click', function () {
|
903
|
+
if (fMove) {
|
904
|
+
return false
|
905
|
+
}
|
906
|
+
});
|
907
|
+
} else {
|
908
|
+
strWrap.addClass('no_drag');
|
909
|
+
};
|
910
|
+
}
|
911
|
+
} else {
|
912
|
+
strWrap.addClass('str_static');
|
913
|
+
}
|
914
|
+
};
|
915
|
+
};
|
916
|
+
if (p.direction == 'down') {
|
917
|
+
|
918
|
+
strWrap.addClass('str_vertical').addClass('str_down');
|
919
|
+
strMove.css({
|
920
|
+
top: -strMove.height(),
|
921
|
+
bottom: 'auto'
|
922
|
+
})
|
923
|
+
if (strMove.height() > strWrap.height()) {
|
924
|
+
var topPos = strWrap.height();
|
925
|
+
if (p.circular) {
|
926
|
+
if (!p.xml) {
|
927
|
+
circCloneVert();
|
928
|
+
topPos = strMove.height();
|
929
|
+
}
|
930
|
+
}
|
931
|
+
if (p.xml) {
|
932
|
+
strMove.css({
|
933
|
+
top:-strMove.height()
|
934
|
+
})
|
935
|
+
}
|
936
|
+
var
|
937
|
+
k2 = 0;
|
938
|
+
timeFunc = function () {
|
939
|
+
var
|
940
|
+
fullS = strWrap.height(), //крайняя точка
|
941
|
+
time = (fullS / strWrap.data('scrollamount')) * 1000; //время
|
942
|
+
|
943
|
+
if (parseFloat(strMove.css('top')) != 0) {
|
944
|
+
fullS = (strMove.height() + strWrap.height());
|
945
|
+
time = (fullS - (strMove.height() + parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000;
|
946
|
+
}
|
947
|
+
return time;
|
948
|
+
};
|
949
|
+
var moveFunc = function () {
|
950
|
+
|
951
|
+
if (loop != 0) {
|
952
|
+
strMove.animate({
|
953
|
+
top: topPos
|
954
|
+
}, timeFunc(), 'linear', function () {
|
955
|
+
$(this).css({
|
956
|
+
top: -strMove.height()
|
957
|
+
});
|
958
|
+
if (loop == -1) {
|
959
|
+
|
960
|
+
setTimeout(moveFunc, p.scrolldelay);
|
961
|
+
} else {
|
962
|
+
loop--;
|
963
|
+
setTimeout(moveFunc, p.scrolldelay);
|
964
|
+
};
|
965
|
+
});
|
966
|
+
};
|
967
|
+
};
|
968
|
+
strWrap.data({
|
969
|
+
moveF : moveFunc
|
970
|
+
})
|
971
|
+
if(!p.inverthover){
|
972
|
+
moveFunc();
|
973
|
+
}
|
974
|
+
if (p.hoverstop) {
|
975
|
+
strWrap.on(enterEvent, function () {
|
976
|
+
$(this).addClass('str_active');
|
977
|
+
strMove.stop(true);
|
978
|
+
}).on(leaveEvent, function () {
|
979
|
+
$(this).removeClass('str_active');
|
980
|
+
$(this).off('mousemove');
|
981
|
+
moveFunc();
|
982
|
+
});
|
983
|
+
|
984
|
+
if (p.drag) {
|
985
|
+
strWrap.on('mousedown', function (e) {
|
986
|
+
if(p.inverthover){
|
987
|
+
strMove.stop(true);
|
988
|
+
}
|
989
|
+
|
990
|
+
//drag
|
991
|
+
var dragTop;
|
992
|
+
var dir = 1;
|
993
|
+
var newY;
|
994
|
+
var oldY = e.clientY;
|
995
|
+
//drag
|
996
|
+
|
997
|
+
|
998
|
+
strMoveTop = strMove.position().top;
|
999
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1000
|
+
$(this).on('mousemove', function (e) {
|
1001
|
+
|
1002
|
+
fMove = true;
|
1003
|
+
|
1004
|
+
//drag
|
1005
|
+
newY = e.clientY;
|
1006
|
+
if(newY > oldY){
|
1007
|
+
dir = 1
|
1008
|
+
}else{
|
1009
|
+
if(newY < oldY){
|
1010
|
+
dir = -1
|
1011
|
+
}
|
1012
|
+
}
|
1013
|
+
oldY = newY
|
1014
|
+
dragTop = k2 + e.clientY - strWrap.offset().top;
|
1015
|
+
|
1016
|
+
|
1017
|
+
if (!p.circular){
|
1018
|
+
if(dragTop < -strMove.height() && dir < 0){
|
1019
|
+
dragTop = strWrap.height();
|
1020
|
+
strMoveTop = strMove.position().top;
|
1021
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1022
|
+
}
|
1023
|
+
if(dragTop > strWrap.height() && dir > 0){
|
1024
|
+
dragTop = -strMove.height();
|
1025
|
+
strMoveTop = strMove.position().top;
|
1026
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1027
|
+
}
|
1028
|
+
}else{
|
1029
|
+
if(dragTop < -strMove.height() && dir < 0){
|
1030
|
+
dragTop = 0;
|
1031
|
+
strMoveTop = strMove.position().top;
|
1032
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1033
|
+
}
|
1034
|
+
if(dragTop > 0 && dir > 0){
|
1035
|
+
dragTop = -strMove.height();
|
1036
|
+
strMoveTop = strMove.position().top;
|
1037
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1038
|
+
}
|
1039
|
+
}
|
1040
|
+
|
1041
|
+
|
1042
|
+
strMove.stop(true).css({
|
1043
|
+
top: dragTop
|
1044
|
+
});
|
1045
|
+
//drag
|
1046
|
+
|
1047
|
+
|
1048
|
+
|
1049
|
+
}).on('mouseup', function () {
|
1050
|
+
if(p.inverthover){
|
1051
|
+
strMove.trigger('mouseenter')
|
1052
|
+
}
|
1053
|
+
$(this).off('mousemove');
|
1054
|
+
setTimeout(function () {
|
1055
|
+
fMove = false
|
1056
|
+
}, 50)
|
1057
|
+
});
|
1058
|
+
return false;
|
1059
|
+
})
|
1060
|
+
.on('click', function () {
|
1061
|
+
if (fMove) {
|
1062
|
+
return false
|
1063
|
+
}
|
1064
|
+
});
|
1065
|
+
} else {
|
1066
|
+
strWrap.addClass('no_drag');
|
1067
|
+
};
|
1068
|
+
}
|
1069
|
+
} else {
|
1070
|
+
if (p.runshort) {
|
1071
|
+
var k2 = 0;
|
1072
|
+
var timeFunc = function () {
|
1073
|
+
time = (strWrap.height() - strMove.position().top) / strWrap.data('scrollamount') * 1000;
|
1074
|
+
return time;
|
1075
|
+
};
|
1076
|
+
var moveFunc = function () {
|
1077
|
+
var topPos = strWrap.height();
|
1078
|
+
strMove.animate({
|
1079
|
+
top: topPos
|
1080
|
+
}, timeFunc(), 'linear', function () {
|
1081
|
+
$(this).css({
|
1082
|
+
top: -strMove.height()
|
1083
|
+
});
|
1084
|
+
if (loop == -1) {
|
1085
|
+
setTimeout(moveFunc, p.scrolldelay);
|
1086
|
+
} else {
|
1087
|
+
loop--;
|
1088
|
+
setTimeout(moveFunc, p.scrolldelay);
|
1089
|
+
};
|
1090
|
+
});
|
1091
|
+
};
|
1092
|
+
strWrap.data({
|
1093
|
+
moveF : moveFunc
|
1094
|
+
})
|
1095
|
+
if(!p.inverthover){
|
1096
|
+
moveFunc();
|
1097
|
+
}
|
1098
|
+
if (p.hoverstop) {
|
1099
|
+
strWrap.on(enterEvent, function () {
|
1100
|
+
$(this).addClass('str_active');
|
1101
|
+
strMove.stop(true);
|
1102
|
+
}).on(leaveEvent, function () {
|
1103
|
+
$(this).removeClass('str_active');
|
1104
|
+
$(this).off('mousemove');
|
1105
|
+
moveFunc();
|
1106
|
+
});
|
1107
|
+
|
1108
|
+
if (p.drag) {
|
1109
|
+
strWrap.on('mousedown', function (e) {
|
1110
|
+
if(p.inverthover){
|
1111
|
+
strMove.stop(true);
|
1112
|
+
}
|
1113
|
+
|
1114
|
+
//drag
|
1115
|
+
var dragTop;
|
1116
|
+
var dir = 1;
|
1117
|
+
var newY;
|
1118
|
+
var oldY = e.clientY;
|
1119
|
+
//drag
|
1120
|
+
|
1121
|
+
strMoveTop = strMove.position().top;
|
1122
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1123
|
+
$(this).on('mousemove', function (e) {
|
1124
|
+
fMove = true;
|
1125
|
+
|
1126
|
+
//drag
|
1127
|
+
newY = e.clientY;
|
1128
|
+
if(newY > oldY){
|
1129
|
+
dir = 1
|
1130
|
+
}else{
|
1131
|
+
if(newY < oldY){
|
1132
|
+
dir = -1
|
1133
|
+
}
|
1134
|
+
}
|
1135
|
+
oldY = newY
|
1136
|
+
dragTop = k2 + e.clientY - strWrap.offset().top;
|
1137
|
+
|
1138
|
+
|
1139
|
+
if(dragTop < -strMove.height() && dir < 0){
|
1140
|
+
dragTop = strWrap.height();
|
1141
|
+
strMoveTop = strMove.position().top;
|
1142
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1143
|
+
}
|
1144
|
+
if(dragTop > strWrap.height() && dir > 0){
|
1145
|
+
dragTop = -strMove.height();
|
1146
|
+
strMoveTop = strMove.position().top;
|
1147
|
+
k2 = strMoveTop - (e.clientY - strWrap.offset().top);
|
1148
|
+
}
|
1149
|
+
//*drag
|
1150
|
+
|
1151
|
+
strMove.stop(true).css({
|
1152
|
+
top: dragTop
|
1153
|
+
});
|
1154
|
+
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
|
1159
|
+
|
1160
|
+
|
1161
|
+
|
1162
|
+
}).on('mouseup', function () {
|
1163
|
+
if(p.inverthover){
|
1164
|
+
strMove.trigger('mouseenter')
|
1165
|
+
}
|
1166
|
+
$(this).off('mousemove');
|
1167
|
+
setTimeout(function () {
|
1168
|
+
fMove = false
|
1169
|
+
}, 50)
|
1170
|
+
})
|
1171
|
+
return false;
|
1172
|
+
})
|
1173
|
+
.on('click', function () {
|
1174
|
+
if (fMove) {
|
1175
|
+
return false
|
1176
|
+
}
|
1177
|
+
});
|
1178
|
+
} else {
|
1179
|
+
strWrap.addClass('no_drag');
|
1180
|
+
};
|
1181
|
+
}
|
1182
|
+
} else {
|
1183
|
+
strWrap.addClass('str_static');
|
1184
|
+
}
|
1185
|
+
};
|
1186
|
+
};
|
1187
|
+
|
1188
|
+
|
1189
|
+
|
1190
|
+
|
1191
|
+
}
|
1192
|
+
if (p.xml) {
|
1193
|
+
$.ajax({
|
1194
|
+
url: p.xml,
|
1195
|
+
dataType: "xml",
|
1196
|
+
success: function (xml) {
|
1197
|
+
var xmlTextEl = $(xml).find('text');
|
1198
|
+
var xmlTextLength = xmlTextEl.length;
|
1199
|
+
for(var i = 0; i < xmlTextLength; i++){
|
1200
|
+
var xmlElActive = xmlTextEl.eq(i);
|
1201
|
+
var xmlElContent = xmlElActive.text();
|
1202
|
+
var xmlItemEl = $('<span>').text(xmlElContent).appendTo(strWrap);
|
1203
|
+
|
1204
|
+
if(p.direction == 'left' || p.direction == 'right'){
|
1205
|
+
xmlItemEl.css({display:'inline-block',textAlign:'right'});
|
1206
|
+
if(i > 0){
|
1207
|
+
xmlItemEl.css({width:strWrap.width()+xmlItemEl.width()});
|
1208
|
+
}
|
1209
|
+
}
|
1210
|
+
if(p.direction == 'down' || p.direction == 'up'){
|
1211
|
+
xmlItemEl.css({display:'block',textAlign:'left'});
|
1212
|
+
if(i > 0){
|
1213
|
+
xmlItemEl.css({paddingTop:strWrap.height()});
|
1214
|
+
}
|
1215
|
+
}
|
1216
|
+
|
1217
|
+
}
|
1218
|
+
code();
|
1219
|
+
}
|
1220
|
+
});
|
1221
|
+
} else {
|
1222
|
+
code();
|
1223
|
+
}
|
1224
|
+
strWrap.data({
|
1225
|
+
ini:code,
|
1226
|
+
startheight: startHeight
|
1227
|
+
})
|
1228
|
+
|
1229
|
+
|
1230
|
+
|
1231
|
+
|
1232
|
+
});
|
1233
|
+
},
|
1234
|
+
update: function () {
|
1235
|
+
var el = $(this);
|
1236
|
+
var str_origin = $('.str_origin',el);
|
1237
|
+
var str_move_clone = $('.str_move_clone',el);
|
1238
|
+
str_origin.stop(true);
|
1239
|
+
str_move_clone.remove();
|
1240
|
+
el.data('ini')();
|
1241
|
+
},
|
1242
|
+
destroy: function () {
|
1243
|
+
|
1244
|
+
var el = $(this);
|
1245
|
+
var elMove = $('.str_move',el);
|
1246
|
+
var startHeight = el.data('startheight');
|
1247
|
+
|
1248
|
+
$('.str_move_clone',el).remove();
|
1249
|
+
el.off('mouseenter');
|
1250
|
+
el.off('mousedown');
|
1251
|
+
el.off('mouseup');
|
1252
|
+
el.off('mouseleave');
|
1253
|
+
el.off('mousemove');
|
1254
|
+
el.removeClass('noStop').removeClass('str_vertical').removeClass('str_active').removeClass('no_drag').removeClass('str_static').removeClass('str_right').removeClass('str_down');
|
1255
|
+
|
1256
|
+
var elStyle = el.attr('style');
|
1257
|
+
if(elStyle){
|
1258
|
+
var styleArr = elStyle.split(';');
|
1259
|
+
for(var i=0; i < styleArr.length; i++){
|
1260
|
+
var str = $.trim(styleArr[i]);
|
1261
|
+
var tested = str.search(/^height/g);
|
1262
|
+
if(tested != -1){
|
1263
|
+
styleArr[i] = '';
|
1264
|
+
}
|
1265
|
+
}
|
1266
|
+
var newArr = styleArr.join(';');
|
1267
|
+
var newStyle = newArr.replace(/;+/g,';')
|
1268
|
+
|
1269
|
+
if(newStyle == ';'){
|
1270
|
+
el.removeAttr('style');
|
1271
|
+
}else{
|
1272
|
+
el.attr('style',newStyle);
|
1273
|
+
}
|
1274
|
+
|
1275
|
+
if(startHeight){
|
1276
|
+
el.css({height:startHeight})
|
1277
|
+
}
|
1278
|
+
}
|
1279
|
+
elMove.stop(true);
|
1280
|
+
|
1281
|
+
if(elMove.length){
|
1282
|
+
var context = elMove.html();
|
1283
|
+
elMove.remove();
|
1284
|
+
el.html(context);
|
1285
|
+
}
|
1286
|
+
|
1287
|
+
},
|
1288
|
+
pause: function(){
|
1289
|
+
var el = $(this);
|
1290
|
+
var elMove = $('.str_move',el);
|
1291
|
+
elMove.stop(true);
|
1292
|
+
},
|
1293
|
+
play: function(){
|
1294
|
+
var el = $(this);
|
1295
|
+
$(this).off('mousemove');
|
1296
|
+
el.data('moveF')();
|
1297
|
+
}
|
1298
|
+
|
1299
|
+
};
|
1300
|
+
$.fn.liMarquee = function (method) {
|
1301
|
+
if (methods[method]) {
|
1302
|
+
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
1303
|
+
} else if (typeof method === 'object' || !method) {
|
1304
|
+
return methods.init.apply(this, arguments);
|
1305
|
+
} else {
|
1306
|
+
$.error('Метод ' + method + ' в jQuery.liMarquee не существует');
|
1307
|
+
}
|
1308
|
+
};
|
1309
|
+
})(jQuery);
|