JavaScript滑移效果代码

代码:

js滑移效果

var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};

function Event(e){
var oEvent = document.all ? window.event : e;
if (document.all) {
oEvent.pageX = oEvent.clientX + document.documentElement.scrollLeft;
oEvent.pageY = oEvent.clientY + document.documentElement.scrollTop;
}
return oEvent;
}

function addEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
} else if (oTarget.attachEvent) {
oTarget.attachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};

function removeEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.removeEventListener) {
oTarget.removeEventListener(sEventType, fnHandler, false);
} else if (oTarget.detachEvent) {
oTarget.detachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = null;
}
};

var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}

Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
}

var Slippage = Class.create();
Slippage.prototype = {
initialize: function(obj, options) {

this.obj = $(obj);
this._timer =null;
this._xs = this._ys = [];
this.X = parseInt(this.obj.style.left) || 0;
this.Y = parseInt(this.obj.style.top) || 0;

this.SetOptions(options);
this.Step = Math.abs(this.options.Step);
this.Time = Math.abs(this.options.Time);
this.Loop = this.options.Loop;
this.Relative = this.options.Relative;

this.SetPosition(this.options.X || [], this.options.Y || []);
},
//设置默认属性
SetOptions: function(options) {
this.options = {//默认值
Step: 10,//滑动变化率
Time: 10,//滑动延时
X: [],//x坐标变化
Y: [],//y坐标变化
Loop: false,//是否循环
Relative: true//是否相对位置
};
Object.extend(this.options, options || {});
},
//
SetPosition: function(arrX, arrY) {
if(arrX.length 0) this.X = this._xs.shift();
if(this._ys.length > 0) this.Y = this._ys.shift();

if(this.Loop && this._xs.length > 0 && this._ys.length > 0) { this._xs.push(this.X);this._ys.push(this.Y); }

//$("aa").innerHTML+=this._ys.length+"=";
this.Move(this.X, this.Y);
},
//
Move: function(iX, iY) {
clearTimeout(this._timer);

var iLeft = parseInt(this.obj.style.left) || 0, iTop = parseInt(this.obj.style.top) || 0, iLeftStep = this.GetStep(iX, iLeft), iTopStep = this.GetStep(iY, iTop);

if (iLeftStep == 0 && iTopStep == 0) {
this.Set();
} else {
this.obj.style.left = (iLeft + iLeftStep) + "px"; this.obj.style.top = (iTop + iTopStep) + "px";
var oThis = this; this._timer = setTimeout(function(){ oThis.Move(iX, iY); }, this.Time);
}
},
//
GetStep: function(iTarget, iNow) {
var iStep = (iTarget - iNow) / this.Step;
if (iStep == 0) return 0;
if (Math.abs(iStep) 0 ? 1 : -1);
return iStep;
}
};

window.onload = function(){
new Slippage("idSlippage3", { X: [200,200,0,-200,-100,-100], Y: [0,0,100,-100,100,-100], Loop: true });

var oSlippage = new Slippage("idSlippage");
$("aa").onclick = function(e){ var oEvent = Event(e);oSlippage.Move(oEvent.pageX, oEvent.pageY);}

var oSlippage2 = new Slippage("idSlippage2", { Step: 1, Relative: false }),x=[],y=[];
$("bb").onmousedown = function(e){ addEventHandler(this, "mousemove", Set); }
$("bb").onmouseout = function(e){ removeEventHandler(this, "mousemove", Set); x=y=[];}
$("bb").onmouseup = function(e){ removeEventHandler(this, "mousemove", Set); oSlippage2.SetPosition(x, y);x=y=[];}
function Set(e){ var oEvent = Event(e); x.push(oEvent.pageX); y.push(oEvent.pageY); }
}

自动滑移:

定点滑移:(鼠标点击)

定线滑移:(鼠标拖动轨迹)

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • JavaScript滑移效果代码

    代码: js滑移效果 var $ = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; function Event(e){ var oEvent = document.all ? window.event : e; if (document.all) { oEvent.pageX = oEvent.clientX + document.documentElement.

  • JavaScript 拖放效果代码

    这个程序的原型是在做图片切割效果的时候做出来的,那时参考了好几个同类的效果,跟muxrwc和BlueDestiny学习了不少东西. 虽然每次整理都觉得很好了,不过每隔一段时间又会发现得某个地方可以改善,某个地方有错误,某些需求需要实现,就像自己学习的知识那样. 这里考虑到有的人可能只需要简单的拖放,所以有一个简化版的拖放SimpleDrag,方便学习. 效果预览 ps:在maxthon下如果开启广告过滤的话很可能会被过滤掉(不知有什么方法可以避免). 程序说明 [程序原理] 这里以SimpleD

  • 很酷的javascript loading效果代码

    复制代码 代码如下: <font color=red><script language="JavaScript">  <!--  var url = 'http://www.jb51.net'; ///这里是你的网址   //-->  </script>  </head>  <body onLoad="location.href = url">  <div style='margin-to

  • javascript倒计时效果代码,可以方便参数调用

    我们-www.jb51.net 倒记时效果 "+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒"; } else { document.getElementById(time_id[i]).innerHTML=daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒&

  • JavaScript实现上下浮动的窗口效果代码

    本文实例讲述了JavaScript实现上下浮动的窗口效果代码.分享给大家供大家参考.具体如下: 这里介绍使用JavaScript实现上下浮动的窗口,在垂直方向上漂浮,代码内的JS函数有超丰富的浮动层定义功能,像浮动层位置高度.初始化事件触发器.设定浮动层为可见,用style.left设定浮动层左边距.浮动层的运动速度等,还有更多的设置选项都能实现. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-up-down-float-move-win

  • JavaScript直播评论发弹幕切图功能点集合效果代码

    一.代码 html+js <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>数发直播平台</title> <link rel="stylesheet" type="text/css" href="css/common.css"> <link rel="styl

  • javascript实现的全国省市县无刷新多级关联菜单效果代码

    本文实例讲述了javascript实现的全国省市县无刷新多级关联菜单效果代码.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <html> <head> <title>全国省市县无刷新多级关联菜单</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> body,

  • JavaScript实现标题栏文字轮播效果代码

    本文实例讲述了JavaScript实现标题栏文字轮播效果代码.分享给大家供大家参考,具体如下: 这里演示的JS文字轮播,显示在标题栏区域,以前个人主页时候经常见到的效果,不过现在都规范了,标题栏一般都不加入这种效果了.但是可以学习一下JS制作实现一些文字特效,运行效果后请查看标题栏. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-title-loop-show-style-demo/ 具体代码如下: <html> <head>

  • javascript 缓冲效果实现代码 推荐

    菜鸟版代码如下: 理解这段代码就基本上掌握了 复制代码 代码如下: function f_s() { var obj = document.getElementById("top"); obj.style.display = "block"; obj.style.height = "1px"; var sw = function () { var s_width = parseInt(obj.style.height); if (s_width

  • javaScript实现可缩放的显示区效果代码

    本文实例讲述了javaScript实现可缩放的显示区效果代码.分享给大家供大家参考,具体如下: 这里演示可缩放的显示区,采用JS代码实现,鼠标按住区域的右下角,出现拖放箭头时,向下或向上拉,就可实现缩放操作,当区域较小时显示滚动条,平时也比较常见的效果,在此将JavaScript代码与大家分享. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-ksf-box-style-demo/ 具体代码如下: <HTML> <HEAD>

随机推荐