js 的拖拉效果
来源:互联网 发布:谷歌语音识别python 编辑:程序博客网 时间:2024/04/28 17:50
源码(转自codeproject网)
<head>
<script type="text/javascript">var oDragItem = null;
var iClickOffsetX = 0;
var iClickOffsetY = 0;
function OnLoad(){
MakeDragable("idBox1");
MakeDragable("table");
}
function MakeDragable(id){
var oBox = $(id);
oBox.onmousemove= function(e){DragMove(oBox,e)};
oBox.onmouseup=function(e){DragStop(oBox,e)};
oBox.onmousedown=function(e){DragStart(oBox,e);return false};
oBox.className = "Dragable";
}
function DragStart(o,e){
if(!e) var e = window.event;
oDragItem = o;
OverlayFrames();
if (e.offsetX){
iClickOffsetX = e.offsetX;
iClickOffsetY = e.offsetY;
}else{
var oPos = GetObjPos(o);
iClickOffsetX = e.clientX - oPos.x;
iClickOffsetY = e.clientY - oPos.y;
}
if (o.setCapture){
o.setCapture();
}else{
window.addEventListener ("mousemove", DragMove2, true);
window.addEventListener ("mouseup", DragStop2, true);
}
}
function DragMove2(e){
DragMove(oDragItem,e);
}
function DragStop2(e){
DragStop(oDragItem,e);
}
function DragMove(o,e){
if (oDragItem==null) return;
if(!e) var e = window.event;
var x = e.clientX + document.body.scrollLeft - document.body.clientLeft - iClickOffsetX;
var y = e.clientY + document.body.scrollTop - document.body.clientTop - iClickOffsetY;
with(oDragItem.style){
zIndex = 1000;
position="absolute";
left=x;
top=y;
}
}
function DragStop(o,e){
if (oDragItem==null) return;
if (o.releaseCapture){
o.releaseCapture();
}else if (oDragItem){
window.removeEventListener ("mousemove", DragMove2, true);
window.removeEventListener ("mouseup", DragStop2, true);
}
oDragItem.style.zIndex = 1;
oDragItem = null;
RemoveOverlays();
}
function $(s){
return document.getElementById(s);
}
function GetObjPos(obj){
var x = 0;
var y = 0;
var w = obj.offsetWidth;
var h = obj.offsetHeight;
if (obj.offsetParent) {
x = obj.offsetLeft
y = obj.offsetTop
while (obj = obj.offsetParent){
x += obj.offsetLeft;
y += obj.offsetTop;
}
}
return {x:x, y:y, w:w, h:h};
}
function OverlayFrames(){
if (IsIE() || IsFF()) return;
var oFrames = document.getElementsByTagName("iframe");
for (var i=0; i < oFrames.length; i++){
Overlay(oFrames[i]);
}
}
function RemoveOverlays(){
if (IsIE() || IsFF()) return;
var oFrames = document.getElementsByTagName("iframe");
for (var i=0; i < oFrames.length; i++){
var id = oFrames[i].id + "_over";
var div = $(id);
if (div) div.parentNode.removeChild(div);
}
}
function Overlay(o){
var oPos = GetObjPos(o);
var id = o.id + "_over";
var div = $(id);
if (div==null){
div = document.createElement("div");
div.id = id;
div.style.position = "absolute";
//div.style.backgroundColor = "pink";
document.body.appendChild(div);
}
div.style.left = oPos.x;
div.style.top = oPos.y;
div.style.width = oPos.w;
div.style.height = oPos.h;
}
function IsIE(){
return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}
function IsFF(){
return /Firefox/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}
</script>
<style>
.Dragable{
cursor:move;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
user-select: none;
}
</style>
</head>
<body onload="OnLoad()">
<div selectable="no" id="idBox1" style="left: 100px; width: 100px; height:100px; background-color: Red; text-align: center;">Test</div>
<div selectable="no" id="idBox2" style="width: 100px; height:100px; background-color: Yellow; text-align: center; top:200;">Test</div>
<iframe id="idFrame1" src="http://www.google.com.hk/"></iframe>
</body>
- js 的拖拉效果
- js拖拉缩放效果
- 使用dragdealer.js实现拖拉效果
- JavaScript 拖拉缩放效果
- JavaScript 拖拉缩放效果
- 列表拖拉效果
- JavaScript 拖拉缩放效果
- JavaScript 拖拉缩放效果
- JavaScript 拖拉缩放效果
- THREE.js鼠标选取拖拉的原理与实现
- javaScript表格宽度拖拉效果
- JavaScript 拖拉缩放效果 实例
- 文件拖拉的支持
- flex tree的拖拉
- HTML5 拖拉的例子
- flex tree的拖拉
- 有意思的拖拉条
- ext portal+dwr+spring实现个性主页面拖拉效果的核心代码
- ASP.NET 服务器控件渲染到客户端之后对应的HTML标签
- Uploading audio, video or image files from Android to php server.
- TabHost使用(一)
- 将注入进行到底--------远程线程实现 Dll 注入 汇编实现
- IRAF 安装 for Ubuntu 10.04
- js 的拖拉效果
- LookupPrivilegeValue
- 有关ucenter通讯失败的问题
- eclipse 的jetty配置jndi数据源
- 4大国外自由职业者项目外包网站
- 设置datetimepicket的时间为当天日期+当前时间,当天日期+“00:00:00”的格式,选择的日期+“23:59:59”的格式
- 将汉字转换成汉语拼音的工具代码
- 国外最流行的几个外包接活平台简要介绍
- 物价压力居高不下 低成本生活"抠抠族"各显神通