Comparing version 1.0.0 to 1.0.1
1316
index.js
@@ -1,1316 +0,2 @@ | ||
/* | ||
* jQuery liMarquee v 4.6 | ||
* | ||
* Copyright 2013, Linnik Yura | LI MASS CODE | http://masscode.ru | ||
* http://masscode.ru/index.php/k2/item/44-limarquee | ||
* Free to use | ||
* | ||
* Last Update 20.11.2014 | ||
*/ | ||
import $ from 'jquery' | ||
const methods = { | ||
init: function (options) { | ||
var p = { | ||
direction: 'left', //Указывает направление движения содержимого контейнера (left | right | up | down) | ||
loop: -1, //Задает, сколько раз будет прокручиваться содержимое. "-1" для бесконечного воспроизведения движения | ||
scrolldelay: 0, //Величина задержки в миллисекундах между движениями | ||
scrollamount: 50, //Скорость движения контента (px/sec) | ||
circular: true, //Если "true" - строка непрерывная | ||
drag: true, //Если "true" - включено перетаскивание строки | ||
runshort: true, //Если "true" - короткая строка тоже "бегает", "false" - стоит на месте | ||
hoverstop: true, //true - строка останавливается при наведении курсора мыши, false - строка не останавливается | ||
inverthover: false, //false - стандартное поведение. Если "true" - строка начинает движение только при наведении курсора | ||
xml: false //Путь к xml файлу с нужным текстом | ||
}; | ||
if (options) { | ||
$.extend(p, options); | ||
} | ||
return this.each(function () { | ||
var enterEvent = 'mouseenter'; | ||
var leaveEvent = 'mouseleave'; | ||
if(p.inverthover){ | ||
enterEvent = 'mouseleave'; | ||
leaveEvent = 'mouseenter'; | ||
} | ||
var | ||
loop = p.loop, | ||
strWrap = $(this).addClass('str_wrap').data({scrollamount:p.scrollamount}), | ||
fMove = false; | ||
var strWrapStyle = strWrap.attr('style'); | ||
if(strWrapStyle){ | ||
var wrapStyleArr = strWrapStyle.split(';'); | ||
var startHeight = false; | ||
for(var i=0; i < wrapStyleArr.length; i++){ | ||
var str = $.trim(wrapStyleArr[i]); | ||
var tested = str.search(/^height/g); | ||
if(tested != -1){ | ||
startHeight = parseFloat(strWrap.css('height')); | ||
} | ||
} | ||
} | ||
var code = function () { | ||
strWrap.off('mouseleave'); | ||
strWrap.off('mouseenter'); | ||
strWrap.off('mousemove'); | ||
strWrap.off('mousedown'); | ||
strWrap.off('mouseup'); | ||
if(!$('.str_move',strWrap).length){ | ||
strWrap.wrapInner($('<div>').addClass('str_move')); | ||
} | ||
var | ||
strMove = $('.str_move', strWrap).addClass('str_origin'), | ||
strMoveClone = strMove.clone().removeClass('str_origin').addClass('str_move_clone'), | ||
time = 0; | ||
if (!p.hoverstop) { | ||
strWrap.addClass('noStop'); | ||
} | ||
var circCloneHor = function(){ | ||
strMoveClone.clone().css({ | ||
left:'100%', | ||
right:'auto', | ||
width: strMove.width() | ||
}).appendTo(strMove); | ||
strMoveClone.css({ | ||
right: '100%', | ||
left:'auto', | ||
width: strMove.width() | ||
}).appendTo(strMove); | ||
} | ||
var circCloneVert = function(){ | ||
strMoveClone.clone().css({ | ||
top: '100%', | ||
bottom:'auto', | ||
height: strMove.height() | ||
}).appendTo(strMove); | ||
strMoveClone.css({ | ||
bottom: '100%', | ||
top:'auto', | ||
height:strMove.height() | ||
}).appendTo(strMove); | ||
} | ||
if (p.direction == 'left') { | ||
strWrap.height(strMove.outerHeight()) | ||
if (strMove.width() > strWrap.width()) { | ||
var leftPos = -strMove.width(); | ||
if (p.circular) { | ||
if (!p.xml) { | ||
circCloneHor() | ||
leftPos = -(strMove.width() + (strMove.width() - strWrap.width())); | ||
} | ||
} | ||
if (p.xml) { | ||
strMove.css({ | ||
left:strWrap.width() | ||
}) | ||
} | ||
var | ||
strMoveLeft = strWrap.width(), | ||
k1 = 0, | ||
timeFunc1 = function () { | ||
var | ||
fullS = Math.abs(leftPos), | ||
time = (fullS / strWrap.data('scrollamount')) * 1000; | ||
if (parseFloat(strMove.css('left')) != 0) { | ||
fullS = (fullS + strWrap.width()); | ||
time = (fullS - (strWrap.width() - parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000; | ||
} | ||
return time; | ||
}, | ||
moveFuncId1 = false, | ||
moveFunc1 = function () { | ||
if (loop != 0) { | ||
strMove.stop(true).animate({ | ||
left: leftPos | ||
}, timeFunc1(), 'linear', function () { | ||
$(this).css({ | ||
left: strWrap.width() | ||
}); | ||
if (loop == -1) { | ||
moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay); | ||
} else { | ||
loop--; | ||
moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay); | ||
} | ||
}); | ||
} | ||
}; | ||
strWrap.data({ | ||
moveId: moveFuncId1 , | ||
moveF : moveFunc1 | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc1(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
clearTimeout(moveFuncId1); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc1(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragLeft; | ||
var dir = 1; | ||
var newX; | ||
var oldX = e.clientX; | ||
//drag | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newX = e.clientX; | ||
if(newX > oldX){ | ||
dir = 1 | ||
}else{ | ||
dir = -1 | ||
} | ||
oldX = newX | ||
dragLeft = k1 + (e.clientX - strWrap.offset().left); | ||
if (!p.circular) { | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = strWrap.width(); | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > strWrap.width() && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
}else{ | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = 0; | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > 0 && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
} | ||
strMove.stop(true).css({ | ||
left: dragLeft | ||
}); | ||
//drag | ||
}).on('mouseup', function () { | ||
$(this).off('mousemove'); | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
if (p.runshort) { | ||
strMove.css({ | ||
left: strWrap.width() | ||
}); | ||
var | ||
strMoveLeft = strWrap.width(), | ||
k1 = 0, | ||
timeFunc = function () { | ||
time = (strMove.width() + strMove.position().left) / strWrap.data('scrollamount') * 1000; | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
var leftPos = -strMove.width(); | ||
strMove.animate({ | ||
left: leftPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
left: strWrap.width() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} | ||
}); | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragLeft; | ||
var dir = 1; | ||
var newX; | ||
var oldX = e.clientX; | ||
//drag | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newX = e.clientX; | ||
if(newX > oldX){ | ||
dir = 1 | ||
}else{ | ||
dir = -1 | ||
} | ||
oldX = newX | ||
dragLeft = k1 + (e.clientX - strWrap.offset().left); | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = strWrap.width(); | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > strWrap.width() && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k1 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
strMove.stop(true).css({ | ||
left: dragLeft | ||
}); | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
strWrap.addClass('str_static'); | ||
} | ||
}; | ||
}; | ||
if (p.direction == 'right') { | ||
strWrap.height(strMove.outerHeight()) | ||
strWrap.addClass('str_right'); | ||
strMove.css({ | ||
left: -strMove.width(), | ||
right: 'auto' | ||
}) | ||
if (strMove.width() > strWrap.width()) { | ||
var leftPos = strWrap.width(); | ||
strMove.css({ | ||
left: 0 | ||
}) | ||
if (p.circular) { | ||
if (!p.xml) { | ||
circCloneHor() | ||
//Определяем крайнюю точку | ||
leftPos = strMove.width(); | ||
} | ||
} | ||
var | ||
k2 = 0; | ||
timeFunc = function () { | ||
var | ||
fullS = strWrap.width(), //крайняя точка | ||
time = (fullS / strWrap.data('scrollamount')) * 1000; //время | ||
if (parseFloat(strMove.css('left')) != 0) { | ||
fullS = (strMove.width() + strWrap.width()); | ||
time = (fullS - (strMove.width() + parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000; | ||
} | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
if (loop != 0) { | ||
strMove.animate({ | ||
left: leftPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
left: -strMove.width() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragLeft; | ||
var dir = 1; | ||
var newX; | ||
var oldX = e.clientX; | ||
//drag | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newX = e.clientX; | ||
if(newX > oldX){ | ||
dir = 1 | ||
}else{ | ||
dir = -1 | ||
} | ||
oldX = newX | ||
dragLeft = k2 + (e.clientX - strWrap.offset().left); | ||
if (!p.circular) { | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = strWrap.width(); | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > strWrap.width() && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
}else{ | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = 0; | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > 0 && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
} | ||
strMove.stop(true).css({ | ||
left: dragLeft | ||
}); | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
if (p.runshort) { | ||
var k2 = 0; | ||
var timeFunc = function () { | ||
time = (strWrap.width() - strMove.position().left) / strWrap.data('scrollamount') * 1000; | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
var leftPos = strWrap.width(); | ||
strMove.animate({ | ||
left: leftPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
left: -strMove.width() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragLeft; | ||
var dir = 1; | ||
var newX; | ||
var oldX = e.clientX; | ||
//drag | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newX = e.clientX; | ||
if(newX > oldX){ | ||
dir = 1 | ||
}else{ | ||
dir = -1 | ||
} | ||
oldX = newX | ||
dragLeft = k2 + (e.clientX - strWrap.offset().left); | ||
if(dragLeft < -strMove.width() && dir < 0){ | ||
dragLeft = strWrap.width(); | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
if(dragLeft > strWrap.width() && dir > 0){ | ||
dragLeft = -strMove.width(); | ||
strMoveLeft = strMove.position().left; | ||
k2 = strMoveLeft - (e.clientX - strWrap.offset().left); | ||
} | ||
strMove.stop(true).css({ | ||
left:dragLeft | ||
}); | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
strWrap.addClass('str_static'); | ||
} | ||
}; | ||
}; | ||
if (p.direction == 'up') { | ||
strWrap.addClass('str_vertical'); | ||
if (strMove.height() > strWrap.height()) { | ||
var topPos = -strMove.height(); | ||
if (p.circular) { | ||
if (!p.xml) { | ||
circCloneVert(); | ||
topPos = -(strMove.height() + (strMove.height() - strWrap.height())); | ||
} | ||
} | ||
if (p.xml) { | ||
strMove.css({ | ||
top:strWrap.height() | ||
}) | ||
} | ||
var | ||
k2 = 0; | ||
timeFunc = function () { | ||
var | ||
fullS = Math.abs(topPos), | ||
time = (fullS / strWrap.data('scrollamount')) * 1000; | ||
if (parseFloat(strMove.css('top')) != 0) { | ||
fullS = (fullS + strWrap.height()); | ||
time = (fullS - (strWrap.height() - parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000; | ||
} | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
if (loop != 0) { | ||
strMove.animate({ | ||
top: topPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
top: strWrap.height() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragTop; | ||
var dir = 1; | ||
var newY; | ||
var oldY = e.clientY; | ||
//drag | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newY = e.clientY; | ||
if(newY > oldY){ | ||
dir = 1 | ||
}else{ | ||
if(newY < oldY){ | ||
dir = -1 | ||
} | ||
} | ||
oldY = newY | ||
dragTop = k2 + e.clientY - strWrap.offset().top; | ||
if (!p.circular){ | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = strWrap.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > strWrap.height() && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
}else{ | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = 0; | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > 0 && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
} | ||
strMove.stop(true).css({ | ||
top: dragTop | ||
}); | ||
//drag | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
if (p.runshort) { | ||
strMove.css({ | ||
top: strWrap.height() | ||
}); | ||
var k2 = 0; | ||
var timeFunc = function () { | ||
time = (strMove.height() + strMove.position().top) / strWrap.data('scrollamount') * 1000; | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
var topPos = -strMove.height(); | ||
strMove.animate({ | ||
top: topPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
top: strWrap.height() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragTop; | ||
var dir = 1; | ||
var newY; | ||
var oldY = e.clientY; | ||
//drag | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newY = e.clientY; | ||
if(newY > oldY){ | ||
dir = 1 | ||
}else{ | ||
if(newY < oldY){ | ||
dir = -1 | ||
} | ||
} | ||
oldY = newY | ||
dragTop = k2 + e.clientY - strWrap.offset().top; | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = strWrap.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > strWrap.height() && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
//*drag | ||
strMove.stop(true).css({ | ||
top: dragTop | ||
}); | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
strWrap.addClass('str_static'); | ||
} | ||
}; | ||
}; | ||
if (p.direction == 'down') { | ||
strWrap.addClass('str_vertical').addClass('str_down'); | ||
strMove.css({ | ||
top: -strMove.height(), | ||
bottom: 'auto' | ||
}) | ||
if (strMove.height() > strWrap.height()) { | ||
var topPos = strWrap.height(); | ||
if (p.circular) { | ||
if (!p.xml) { | ||
circCloneVert(); | ||
topPos = strMove.height(); | ||
} | ||
} | ||
if (p.xml) { | ||
strMove.css({ | ||
top:-strMove.height() | ||
}) | ||
} | ||
var | ||
k2 = 0; | ||
timeFunc = function () { | ||
var | ||
fullS = strWrap.height(), //крайняя точка | ||
time = (fullS / strWrap.data('scrollamount')) * 1000; //время | ||
if (parseFloat(strMove.css('top')) != 0) { | ||
fullS = (strMove.height() + strWrap.height()); | ||
time = (fullS - (strMove.height() + parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000; | ||
} | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
if (loop != 0) { | ||
strMove.animate({ | ||
top: topPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
top: -strMove.height() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragTop; | ||
var dir = 1; | ||
var newY; | ||
var oldY = e.clientY; | ||
//drag | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newY = e.clientY; | ||
if(newY > oldY){ | ||
dir = 1 | ||
}else{ | ||
if(newY < oldY){ | ||
dir = -1 | ||
} | ||
} | ||
oldY = newY | ||
dragTop = k2 + e.clientY - strWrap.offset().top; | ||
if (!p.circular){ | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = strWrap.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > strWrap.height() && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
}else{ | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = 0; | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > 0 && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
} | ||
strMove.stop(true).css({ | ||
top: dragTop | ||
}); | ||
//drag | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}); | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
if (p.runshort) { | ||
var k2 = 0; | ||
var timeFunc = function () { | ||
time = (strWrap.height() - strMove.position().top) / strWrap.data('scrollamount') * 1000; | ||
return time; | ||
}; | ||
var moveFunc = function () { | ||
var topPos = strWrap.height(); | ||
strMove.animate({ | ||
top: topPos | ||
}, timeFunc(), 'linear', function () { | ||
$(this).css({ | ||
top: -strMove.height() | ||
}); | ||
if (loop == -1) { | ||
setTimeout(moveFunc, p.scrolldelay); | ||
} else { | ||
loop--; | ||
setTimeout(moveFunc, p.scrolldelay); | ||
}; | ||
}); | ||
}; | ||
strWrap.data({ | ||
moveF : moveFunc | ||
}) | ||
if(!p.inverthover){ | ||
moveFunc(); | ||
} | ||
if (p.hoverstop) { | ||
strWrap.on(enterEvent, function () { | ||
$(this).addClass('str_active'); | ||
strMove.stop(true); | ||
}).on(leaveEvent, function () { | ||
$(this).removeClass('str_active'); | ||
$(this).off('mousemove'); | ||
moveFunc(); | ||
}); | ||
if (p.drag) { | ||
strWrap.on('mousedown', function (e) { | ||
if(p.inverthover){ | ||
strMove.stop(true); | ||
} | ||
//drag | ||
var dragTop; | ||
var dir = 1; | ||
var newY; | ||
var oldY = e.clientY; | ||
//drag | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
$(this).on('mousemove', function (e) { | ||
fMove = true; | ||
//drag | ||
newY = e.clientY; | ||
if(newY > oldY){ | ||
dir = 1 | ||
}else{ | ||
if(newY < oldY){ | ||
dir = -1 | ||
} | ||
} | ||
oldY = newY | ||
dragTop = k2 + e.clientY - strWrap.offset().top; | ||
if(dragTop < -strMove.height() && dir < 0){ | ||
dragTop = strWrap.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
if(dragTop > strWrap.height() && dir > 0){ | ||
dragTop = -strMove.height(); | ||
strMoveTop = strMove.position().top; | ||
k2 = strMoveTop - (e.clientY - strWrap.offset().top); | ||
} | ||
//*drag | ||
strMove.stop(true).css({ | ||
top: dragTop | ||
}); | ||
}).on('mouseup', function () { | ||
if(p.inverthover){ | ||
strMove.trigger('mouseenter') | ||
} | ||
$(this).off('mousemove'); | ||
setTimeout(function () { | ||
fMove = false | ||
}, 50) | ||
}) | ||
return false; | ||
}) | ||
.on('click', function () { | ||
if (fMove) { | ||
return false | ||
} | ||
}); | ||
} else { | ||
strWrap.addClass('no_drag'); | ||
}; | ||
} | ||
} else { | ||
strWrap.addClass('str_static'); | ||
} | ||
}; | ||
}; | ||
} | ||
if (p.xml) { | ||
$.ajax({ | ||
url: p.xml, | ||
dataType: "xml", | ||
success: function (xml) { | ||
var xmlTextEl = $(xml).find('text'); | ||
var xmlTextLength = xmlTextEl.length; | ||
for(var i = 0; i < xmlTextLength; i++){ | ||
var xmlElActive = xmlTextEl.eq(i); | ||
var xmlElContent = xmlElActive.text(); | ||
var xmlItemEl = $('<span>').text(xmlElContent).appendTo(strWrap); | ||
if(p.direction == 'left' || p.direction == 'right'){ | ||
xmlItemEl.css({display:'inline-block',textAlign:'right'}); | ||
if(i > 0){ | ||
xmlItemEl.css({width:strWrap.width()+xmlItemEl.width()}); | ||
} | ||
} | ||
if(p.direction == 'down' || p.direction == 'up'){ | ||
xmlItemEl.css({display:'block',textAlign:'left'}); | ||
if(i > 0){ | ||
xmlItemEl.css({paddingTop:strWrap.height()}); | ||
} | ||
} | ||
} | ||
code(); | ||
} | ||
}); | ||
} else { | ||
code(); | ||
} | ||
strWrap.data({ | ||
ini:code, | ||
startheight: startHeight | ||
}) | ||
}); | ||
}, | ||
update: function () { | ||
var el = $(this); | ||
var str_origin = $('.str_origin',el); | ||
var str_move_clone = $('.str_move_clone',el); | ||
str_origin.stop(true); | ||
str_move_clone.remove(); | ||
el.data('ini')(); | ||
}, | ||
destroy: function () { | ||
var el = $(this); | ||
var elMove = $('.str_move',el); | ||
var startHeight = el.data('startheight'); | ||
$('.str_move_clone',el).remove(); | ||
el.off('mouseenter'); | ||
el.off('mousedown'); | ||
el.off('mouseup'); | ||
el.off('mouseleave'); | ||
el.off('mousemove'); | ||
el.removeClass('noStop').removeClass('str_vertical').removeClass('str_active').removeClass('no_drag').removeClass('str_static').removeClass('str_right').removeClass('str_down'); | ||
var elStyle = el.attr('style'); | ||
if(elStyle){ | ||
var styleArr = elStyle.split(';'); | ||
for(var i=0; i < styleArr.length; i++){ | ||
var str = $.trim(styleArr[i]); | ||
var tested = str.search(/^height/g); | ||
if(tested != -1){ | ||
styleArr[i] = ''; | ||
} | ||
} | ||
var newArr = styleArr.join(';'); | ||
var newStyle = newArr.replace(/;+/g,';') | ||
if(newStyle == ';'){ | ||
el.removeAttr('style'); | ||
}else{ | ||
el.attr('style',newStyle); | ||
} | ||
if(startHeight){ | ||
el.css({height:startHeight}) | ||
} | ||
} | ||
elMove.stop(true); | ||
if(elMove.length){ | ||
var context = elMove.html(); | ||
elMove.remove(); | ||
el.html(context); | ||
} | ||
}, | ||
pause: function(){ | ||
var el = $(this); | ||
var elMove = $('.str_move',el); | ||
elMove.stop(true); | ||
}, | ||
play: function(){ | ||
var el = $(this); | ||
$(this).off('mousemove'); | ||
el.data('moveF')(); | ||
} | ||
} | ||
class LiMarquee{ | ||
constructor(el){ | ||
const ele = $(el) | ||
this.render = this.render.bind(ele) | ||
} | ||
render(method) { | ||
if (methods[method]) { | ||
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); | ||
} else if (typeof method === 'object' || !method) { | ||
return methods.init.apply(this, arguments); | ||
} else { | ||
$.error('Метод ' + method + ' в jQuery.liMarquee не существует'); | ||
} | ||
}; | ||
} | ||
import LiMarquee from './dist/index.bundle.js' | ||
export default LiMarquee |
{ | ||
"name": "limarquee", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "无缝滚动插件", | ||
"main": "index.js", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"start": "webpack", | ||
"server": "webpack-dev-server --open" | ||
}, | ||
@@ -20,4 +22,12 @@ "repository": { | ||
"devDependencies": { | ||
"jquery": "^3.2.1" | ||
"babel-core": "^6.26.0", | ||
"babel-loader": "^7.1.2", | ||
"babel-preset-es2015": "^6.24.1", | ||
"css-loader": "^0.28.7", | ||
"html-webpack-plugin": "^2.30.1", | ||
"jquery": "^3.2.1", | ||
"postcss-loader": "^2.0.9", | ||
"style-loader": "^0.19.0", | ||
"webpack-dev-server": "^2.9.7" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
370377
10
11290
9
1
1