本文实例讲述了js div拖动动画运行轨迹效果。分享给大家供大家参考。具体如下:
这是一款基于js实现的div拖动动画运行轨迹效果源码,是一款原生js div拖动效果制作鼠标拖动div动画运行轨迹效果代码。可以选择【记住轨迹】与【不记住轨迹】两种拖动显示模式,从而显示出不同的拖动效果。
运行效果图: -------------------查看效果 下载源码-------------------
小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。
为大家分享的js div拖动动画运行轨迹效果代码如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js div拖动动画运行轨迹效果代码 - </title> <style type="text/css"> *{margin:0px;padding:0px;} #div1{position:relative;left:200px;top:200px;width:100px; height:100px; background-color:#f60;cursor:move;} </style> <script type="text/javascript"> var isIE = (document.all)"string"==typeof id"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; } }; function getNodePosition(node,type){//type="left"or"top" var nodeTemp = node; var l = 0; var t = 0; while(nodeTemp!=document.body&&nodeTemp!=null){ l += nodeTemp.offsetLeft; t += nodeTemp.offsetTop; nodeTemp = nodeTemp.offsetParent; } if(type.toLowerCase()=="left") return l; else return t; } //前面通常都用一个base.js封装 </script> <script type="text/javascript"> var MyDrag = Class.create(); MyDrag.prototype = { initilize:function(obj){ this.Obj = $ID(obj); this._x = this._y = 0; this._xx = this._yy = 0;//Move记录坐标 this.Obj.style.position = "absolute"; this._pos = []; this._ifSavePos = true; this._t = null; this._speed = 10; this._indexMove = 0;//全局的MoveIndex this._fnStart = BindAsEventListener(this,this.Start); this._fnMove = BindAsEventListener(this,this.Move); this._fnStop = Bind(this,this.Stop); addEventHandler(this.Obj,"mousedown",this._fnStart); }, Start:function(oEvent){ if(!this._ifSavePos) this._pos = []; this.Drag = this.Obj.cloneNode(true); if(isIE) this.Drag.style.filter = "alpha(opacity=50)"; else this.Drag.style.opacity = "0.5"; this.Obj.parentNode.appendChild(this.Drag); this._left1 = this._xx = getNodePosition(this.Obj,"left"); this._top1 = this._yy = getNodePosition(this.Obj,"top"); this._x = oEvent.clientX - this.Obj.offsetLeft; this._y = oEvent.clientY - this.Obj.offsetTop; addEventHandler(document,"mousemove",this._fnMove); addEventHandler(document,"mouseup",this._fnStop); this._t = setInterval(Bind(this,this.SavePos),10); }, SavePos:function(){//记录坐标点 this._pos.push(this._xx + "_" + this._yy); }, Move:function(oEvent){ if(isIE) oEvent.returnValue = false; this._xx = oEvent.clientX - this._x; this._yy = oEvent.clientY - this._y; this.Drag.style.left = this._xx + "px"; this.Drag.style.top = this._yy + "px"; }, Stop:function(){ removeEventHandler(document,"mousemove",this._fnMove); removeEventHandler(document,"mouseup",this._fnStop); this.Obj.parentNode.removeChild(this.Drag); this.Obj.style.left = this._xx + "px"; this.Obj.style.top = this._yy + "px"; clearInterval(this._t); this._fnCloneMove = Bind(this,this.CloneMove); this._t = setTimeout(this._fnCloneMove,50); }, CloneMove:function(){ if(this._indexMove<6){ new ObjMove({x1:this._left1,y1:this._top1,x2:this._xx,y2:this._yy,pos:this._pos}); this._indexMove++; this._t = setTimeout(this._fnCloneMove,50); }else{ clearTimeout(this._t); this._indexMove = 0; } } } var ObjMove = Class.create(); ObjMove.prototype = { initilize:function(options){ this.SetOptions(options); this.Obj = document.createElement("DIV"); this.Obj.style.cssText = "position:absolute;left:"+ this.options.x1 +"px;top:"+ this.options.y1 +"px;width:100px;height:100px;background-color:#f60;fliter:alpha(opacity=100);opacity:1;"; document.body.appendChild(this.Obj); this.Move2(); }, SetOptions: function(options) { this.options = {//默认值 x1: 0, y1: 0, x2: 0, y2: 0, pos: [] }; Extend(this.options, options || {}); }, Move2:function(){ this._indexMove = 0; this._fnMovePos = Bind(this,this.MovePos); this._t = setInterval(this._fnMovePos,10); }, MovePos:function(){ if(this._indexMove>=this.options.pos.length){ this.options.pos = []; document.body.removeChild(this.Obj); clearInterval(this._t); }else{ this.Obj.style.left = this.options.pos[this._indexMove].split("_")[0] + "px"; this.Obj.style.top = this.options.pos[this._indexMove].split("_")[1] + "px"; } this._indexMove++; } } onload = function(){ var myDrag = new MyDrag("div1"); $ID("rad1").onclick = function(){ myDrag._ifSavePos = true; } $ID("rad2").onclick = function(){ myDrag._ifSavePos = false; } } </script> </head> <body> <center><br> <div>随意拖动那个小方块几秒钟</div><br> <label for="rad1"><input type="radio" id="rad1" name="rad" checked="checked"/>记住轨迹</label> <label for="rad2"><input type="radio" id="rad2" name="rad"/>不记住轨迹</label> <div id="div1"></div> </center> <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';"> <p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. </p> <p>来源:<a href="https://www.jb51.net/" target="_blank"></a></p> </div> </body> </html>
以上就是为大家分享的jQuery UI设置固定日期选择代码,希望大家可以喜欢。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 群星《2022年度发烧天碟》无损黑胶碟 2CD[WAV+CUE][1.4G]
- 罗文1983-罗文甄妮-射雕英雄传(纯银AMCD)[WAV+CUE]
- 群星《亚洲故事香港纯弦》雨果UPMAGCD2024[低速原抓WAV+CUE]
- 群星《经典咏流传》限量1:1母盘直刻[低速原抓WAV+CUE]
- 庾澄庆1993《老实情歌》福茂唱片[WAV+CUE][1G]
- 许巍《在别处》美卡首版[WAV+CUE][1G]
- 林子祥《单手拍掌》华纳香港版[WAV+CUE][1G]
- 郑秀文.1997-我们的主题曲【华纳】【WAV+CUE】
- 群星.2001-生命因爱动听电影原创音乐AVCD【MEDIA】【WAV+CUE】
- 林志颖.1994-别了晴雨的回忆【飞碟】【WAV+CUE】
- 群星《经典咏流传2》限量1:1母盘直刻[低速原抓WAV+CUE]
- 【蓝卡唱片】卫海霞《乐海霞音珍藏版》WAV分轨
- 杨小琳《金装杨小琳》24K金碟特别版[低速原抓WAV+CUE]
- 群星《国风超有戏 第8期》[320K/MP3][30.32MB]
- 群星《国风超有戏 第8期》[FLAC/分轨][157.37MB]