帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» 鼠标跟随定点滑动效果
鼠标跟随定点滑动效果
浏览:563次
-
评论:0次
-
发布时间:2017-04-10
Html
Css
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 && arrX.length <= 0) return false; else if(arrX.length <= 0) arrX = [0]; else if(arrY.length <= 0) arrY = [0]; this._xs = arrX; this._ys = arrY; if(this.Relative){ for(var i in this._xs){ if (i == 0) { this._xs[0] += this.X; } else { this._xs[i] += this._xs[i-1]; } } for(var i in this._ys){ if (i == 0) { this._ys[0] += this.Y; } else { this._ys[i] += this._ys[i-1]; } } } this.Set(); }, // Set: function() { //当全部坐标指向同一个位置时会进入死循环 if(this._xs.length <= 0 && this._ys.length <= 0) return; if(this._xs.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) < 1) return (iStep > 0 ? 1 : -1); return iStep; } }; function aa(){ 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); } }aa();
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>鼠标跟随定点滑动效果-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:点击鼠标或滑动鼠标 跟随滚动
svg特效按钮
javript判断手指在移动端上滑动的方向
讨论这个常用代码(0)
回答他人问题或分享心得会奖励牛币
〒_〒 居然一个评论都没有……
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
563
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值