Skip to content

Instantly share code, notes, and snippets.

@titanew
Last active December 18, 2015 00:28
Show Gist options
  • Save titanew/5696322 to your computer and use it in GitHub Desktop.
Save titanew/5696322 to your computer and use it in GitHub Desktop.
小切换
(function(exports) {
var _control = document.getElementById("my-control");
var _scroll = document.getElementById('my-scroll');
var timer = null;
function addEvent(ele, type, fn) {
if (window.attachEvent) {
return ele.attachEvent("on" + type, fn)
} else if (window.addEventListener) {
return ele.addEventListener(type, fn, false)
} else {
return;
}
};
function startMove(ele, iTarget, speed) {
clearInterval(timer);
timer = setInterval(function() {
doMove(ele, iTarget)
}, speed);
function doMove(ele, iTarget) {
var iSpeed = (iTarget - ele.offsetLeft) / 10;
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
ele.offsetLeft == iTarget ? clearInterval(timer) : ele.style.left = ele.offsetLeft + iSpeed + "px";
};
};
addEvent(_control, "click", function(e) {
var e = e || event;
var target = e.target || e.srcElement;
var className = target.getAttribute("class");
var leftReg = /(^|\s)(className1)(\s|$)/;
var rightReg = /(^|\s)(className2)(\s|$)/;
if (className.match(leftReg)) {
startMove(_scroll, 0, 10)
} else if (className.match(rightReg)) {
startMove(_scroll, "-932", 10)
};
});
})(window)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment