|
|
!(function (global, $, factory) {
|
|
typeof exports == "object" && typeof module != "undefined" ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.LandscapeSlider = factory());
|
})(this, jQuery, function () {
|
|
var LandscapeSlider = function (options) {
|
if (!(this instanceof LandscapeSlider)) {
|
console.log("LandscapeSlider 是一个构造函数,应该用new关键字调用");
|
return;
|
}
|
|
var _DEFALUTS_ = {
|
g_bMoveLeft: true,
|
g_oTimer: null,
|
g_oTimerOut: null,
|
g_bPause: true,
|
g_iPauseTime: 1000,
|
g_iSpeed: 2,
|
id: "",
|
limit: 0
|
}
|
$.extend(true, _DEFALUTS_, options || {});
|
|
var oDiv = document.getElementById(_DEFALUTS_.id);
|
|
if (!oDiv) return;
|
|
var oUl = oDiv.getElementsByTagName('ul')[0];
|
|
var aLi = oDiv.getElementsByTagName('li');
|
|
|
// var liHeight=$(aLi[0]).outerHeight(true));
|
if (_DEFALUTS_.limit != 0) {
|
if (aLi.length <= _DEFALUTS_.limit) {
|
return;
|
}
|
}
|
var i = 0;
|
|
var str = oUl.innerHTML + oUl.innerHTML;
|
|
oUl.innerHTML = str;
|
//oUl.style.height = $(aLi[0]).outerHeight(true) * aLi.length + 'px';
|
oUl.style.width=$(aLi[0]).outerWidth(true)*aLi.length+'px';
|
|
for (i = 0; i < aLi.length; i++) {
|
|
aLi[i].onmouseover = function () {
|
stopMove();
|
};
|
|
aLi[i].onmouseout = function () {
|
startMove(_DEFALUTS_.g_bMoveLeft);
|
};
|
}
|
|
startMove(true);
|
|
function startMove(bLeft) {
|
_DEFALUTS_.g_bMoveLeft = bLeft;
|
|
if (_DEFALUTS_.g_oTimer) {
|
clearInterval(_DEFALUTS_.g_oTimer);
|
}
|
_DEFALUTS_.g_oTimer = setInterval(doMove, 30);
|
}
|
|
function stopMove() {
|
clearInterval(_DEFALUTS_.g_oTimer);
|
_DEFALUTS_.g_oTimer = null;
|
}
|
|
function doMove()
|
{
|
var oDiv=document.getElementById(_DEFALUTS_.id);
|
var oUl=oDiv.getElementsByTagName('ul')[0];
|
var aLi=oUl.getElementsByTagName('li');
|
|
var l=oUl.offsetLeft;
|
|
if(_DEFALUTS_.g_bMoveLeft)
|
{
|
l-=_DEFALUTS_.g_iSpeed;
|
if(l<=-oUl.offsetWidth/2)
|
{
|
l+=oUl.offsetWidth/2;
|
}
|
}
|
else
|
{
|
l+=_DEFALUTS_.g_iSpeed;
|
if(l>=0)
|
{
|
l-=oUl.offsetWidth/2;
|
}
|
}
|
|
if(_DEFALUTS_.g_bPause)
|
{
|
if(Math.abs(l-Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth)<Math.ceil(_DEFALUTS_.g_iSpeed/2))
|
{
|
stopMove();
|
_DEFALUTS_.g_oTimerOut=setTimeout
|
(
|
function ()
|
{
|
startMove(_DEFALUTS_.g_bMoveLeft);
|
}, _DEFALUTS_.g_iPauseTime
|
);
|
|
l=Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth;
|
}
|
}
|
|
oUl.style.left=l+'px';
|
}
|
|
|
}
|
|
|
|
return LandscapeSlider;
|
|
})
|