firefox浏览器下javascript 拖动层效果与原理分析代码


Posted in Javascript onDecember 04, 2007

前言

本文主要给大家介绍了关于firefox下js实现拖动层效果的方法,下面话不多说了,来一起看看详细的介绍吧。

firefox下实现可拖动层代码

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>3water.com 拖动层效果代码</title> 
<script> 
 var obj=0; 
 var x=0; 
 var y=0; 
 var ie = (navigator.appVersion.indexOf("MSIE")!=-1);//IE 
 var ff = (navigator.userAgent.indexOf("Firefox")!=-1);//Firefox 
 function find(evt,objDiv){ 
 obj = objDiv 
 if (ff){ 
  x = document.documentElement.scrollLeft + evt.layerX; 
  y = document.documentElement.scrollTop + evt.layerY; 
   
  if (document.documentElement.scrollTop > 0){ 
   y = evt.layerY - document.documentElement.scrollTop; 
  } 
   
  if (document.documentElement.scrollLeft > 0){ 
   x = evt.layerX - document.documentElement.scrollLeft; 
  } 
  } 
 if (ie){ 
  x = document.documentElement.scrollLeft + evt.offsetX; 
  y = document.documentElement.scrollTop + evt.offsetY; 
   
  if (document.documentElement.scrollTop > 0){ 
   y = evt.offsetY - document.documentElement.scrollTop; 
  } 
   
  if (document.documentElement.scrollLeft > 0){ 
   x = evt.offsetX - document.documentElement.scrollLeft; 
  } 
  } 
 } 
 function dragit(evt){ 
 if(obj == 0){ 
  return false 
 } 
 else{ 
  obj.style.left = evt.clientX - x + "px"; 
  obj.style.top = evt.clientY - y + "px"; 
 } 
 } 
</script> 
</head> 
<body style="margin:0" onmousemove="dragit(event)" onmouseup="obj = 0"> 

<div id="aaa" style="background-color:red;width:200pt;height:200pt;position:absolute"> 
<div id="aa" style="width:200pt;height:20pt;background:blue;position:absolute" onmousedown="find(event,document.getElementById('aaa'))"></div> 
</div><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> 
</body> 
</html>

JavaScript 中一些概念理解 :clientX、clientY、offsetX、offsetY、screenX、screenY

clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。

clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。

offsetX 设置或获取鼠标指针位置相对于触发事件的(this)对象的 x 坐标。

offsetY 设置或获取鼠标指针位置相对于触发事件的(this)对象的 y 坐标。

screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。

screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。

x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。

y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。

如图:图片来源于网络

firefox浏览器下javascript 拖动层效果与原理分析代码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
收集json解析的四种方法分享
Jan 17 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
Aug 10 Javascript
解决vue同一slot在组件中渲染多次的问题
Sep 06 Javascript
基于Vue实现可以拖拽的树形表格实例详解
Oct 18 Javascript
超棒的javascript页面顶部卷动广告效果
Dec 01 #Javascript
js同时按下两个方向键
Dec 01 #Javascript
document.documentElement &amp;&amp; document.documentElement.scrollTop
Dec 01 #Javascript
jquery api参考 visualjquery 中国线路 速度快
Nov 30 #Javascript
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
Nov 30 #Javascript
jquery 指南/入门基础
Nov 30 #Javascript
Prototype1.6 JS 官方下载地址
Nov 30 #Javascript
You might like
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
常用javascript表单验证汇总
2020/07/20 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
Python素数检测的方法
2015/05/11 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
Django 再谈一谈json序列化
2020/03/16 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
详解python tcp编程
2020/08/24 Python
关于抽烟的检讨书
2014/02/25 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
入党自我鉴定
2014/03/25 职场文书
先进个人推荐材料
2014/12/29 职场文书
违纪学生保证书
2015/02/27 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python