建站极客
网络编程 JavaScript 正文
IE/FireFox具备兼容性的拖动代码
所属分类:
网络编程 / JavaScript
阅读数:
1845
收藏 0
赞 0
分享
特点: 1、兼容 IE6、FF、Opear(IE7还没有机会测试) 2、拖动流畅 3、起点与终点之间有过渡,使移动更平滑(可调) 演示 /* Author:misshjn HomePage:http://www.happyshow.org Date:2007-04-30 拖动开始 */ function _getStyle(element,styleProp){ if (element.currentStyle){ var y = element.currentStyle[styleProp]; }else if (window.getComputedStyle){ var y = document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProp.replace(/([A-Z])/g,"-$1").toLowerCase()); } return y; } function _elementOnmouseDown(evt,blockID){ var obj, temp; obj=document.getElementById(blockID); var x = evt.clientX || evt.pageX; var y = evt.clientY || evt.pageY; obj.startX=x-obj.offsetLeft; obj.startY=y-obj.offsetTop; var d = document.createElement("div"); d.style.position = "absolute"; d.style.width = obj.clientWidth + parseInt(_getStyle(obj,"borderLeftWidth"),10) + parseInt(_getStyle(obj,"borderRightWidth")) -2 + "px"; d.style.height = obj.clientHeight + parseInt(_getStyle(obj,"borderTopWidth"),10) + parseInt(_getStyle(obj,"borderBottomWidth")) -2 + "px"; d.style.border = "1px dashed #666"; d.style.top = _getStyle(obj,"top"); d.style.left = _getStyle(obj,"left"); d.style.zIndex = "9999"; document.body.appendChild(d); document.onmousemove=function(evt){ d.style.left= (evt?evt.pageX:event.clientX) - obj.startX + "px"; d.style.top= (evt?evt.pageY:event.clientY) - obj.startY + "px"; }; document.onmouseup=function(){ var objL = parseInt(_getStyle(obj,"left"),10); var objT = parseInt(_getStyle(obj,"top"),10); var obj2L = parseInt(d.style.left,10); var obj2T = parseInt(d.style.top,10); var todolist = []; var level = 10; //元素移动从起点到终点之间过渡的级数,大于0的整数 var speed = 10; //毫秒,每次移动的间隔时间,数字越大,动画感越强,但跳跃感也越大 for (i=1; i<=level; i++){ todolist.push(function(t){ setTimeout(function(){ obj.style.left = objL + (obj2L-objL)*(t/level) + "px"; obj.style.top = objT + (obj2T-objT)*(t/level) + "px"; if(t==i)todolist=null; },speed*arguments[0]); }); } for (i=1; i<=level; i++){ todolist[i-1](i); } document.body.removeChild(d); document.onmousemove = null; document.onmouseup = null; }; } /* 拖动结束 */
Vue-Cli项目优化操作的实现 这篇文章主要介绍了Vue-Cli项目优化操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
评论 0
收藏 0
赞 0
分享
vue 全局环境切换问题 小编在开发使经常会碰到全局切换问题,今天小编给大家带来一篇教程给大家介绍vue 全局环境切换问题,感兴趣的朋友一起看看吧
评论 0
收藏 0
赞 0
分享
element-ui 本地化使用教程详解 这篇文章主要介绍了element-ui 本地化使用教程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
评论 0
收藏 0
赞 0
分享
在Vue项目中,防止页面被缩放和放大示例 今天小编就为大家分享一篇在Vue项目中,防止页面被缩放和放大示例,具有很好的参考 价值,希望对大家有所帮助。一起跟随小编过来看看吧
评论 0
收藏 0
赞 0
分享
vue h5移动端禁止缩放代码 今天小编就为大家分享一篇vue h5移动端禁止缩放代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
评论 0
收藏 0
赞 0
分享
Vue 3.0双向绑定原理的实现方法 这篇文章主要为大家详细介绍了Vue 3.0双向绑定原理的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
评论 0
收藏 0
赞 0
分享
查看更多