javascript拖拽效果延伸学习


Posted in Javascript onApril 04, 2016

本文总结一下,拖拽所延伸出来的一些效果,供大家参考,具体内容如下

1.实现拖拉图片时,带框的效果。即当鼠标拖动某一个图片或物体时,其原有位置扔保留其型。

这种效果,其实很简单,主要是另外创建一个物体,使其与被拖拽的物体,宽和高一样,然后,将其变为拖拽的对象。

直接上代码:

<html
<head>
<style>
#div1 {width:100px; height:100px; background:yellow; position:absolute;}
.box{border: 1px solid black;position: absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload=function ()//凡是被拖拽的物体,其必须定位为absolute
{
  var oDiv=document.getElementById('div1');
  oDiv.onmousedown=function (ev)
  {
    var oEvent=ev||event;
    var disX=oEvent.clientX-oDiv.offsetLeft;
    var disY=oEvent.clientY-oDiv.offsetTop;

    var oNewDiv=document.createElement('div');
    oNewDiv.className='box';
    oNewDiv.style.width=oDiv.offsetWidth-2+'px';//将2px的边框去掉
    oNewDiv.style.height=oDiv.offsetHeight-2+'px';
    
     oNewDiv.style.left=oDiv.offsetLeft+'px';
     oNewDiv.style.top=oDiv.offsetTop+'px';
    document.body.appendChild(oNewDiv);
    document.onmousemove=function (ev)
    {
      var oEvent=ev||event;
      oNewDiv.style.left=oEvent.clientX-disX+'px';
      oNewDiv.style.top=oEvent.clientY-disY+'px';
    };
    document.onmouseup=function ()
    {
      document.onmousemove=null;
      document.onmouseup=null;
      document.body.removeChild(oNewDiv);
      oDiv.style.left=oNewDiv.style.left;
      oDiv.style.top=oNewDiv.style.top;
    };
  };
};
</script>
</head>

<body>
<div id="div1">
</div>
</body>
</html>

2.关于窗口拖拉放大缩小的效果,就是在上面的div之中再包一个div。

<html
<head>
<style>
#div1 {width:10px; height:10px; background:url(images/1.gif); position:absolute;bottom: 0;right: 0}//拖拉的物体,改为图片
#div2{width: 200px;height: 200px;position: relative;background: #ccc;}
.box{border: 1px solid black;position: absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload=function ()//凡是被拖拽的物体,其必须定位为absolute
{
  var oDiv=document.getElementById('div1');
   var oDiv2=document.getElementById('div2');
  oDiv.onmousedown=function (ev)
  {
    var oEvent=ev||event;
    var disX=oEvent.clientX-oDiv.offsetLeft;
    var disY=oEvent.clientY-oDiv.offsetTop;

    var oNewDiv=document.createElement('div');
    //oNewDiv.className='box';
    oNewDiv.style.width=oDiv.offsetWidth-2+'px';
    oNewDiv.style.height=oDiv.offsetHeight-2+'px';
    
     oNewDiv.style.left=oDiv.offsetLeft+'px';
     oNewDiv.style.top=oDiv.offsetTop+'px';
    document.body.appendChild(oNewDiv);
    document.onmousemove=function (ev)
    {
      var oEvent=ev||event;
      oDiv2.style.width=oEvent.clientX-disX+'px';//这里是它的父级
      oDiv2.style.height=oEvent.clientY-disY+'px';
    };
    document.onmouseup=function ()
    {
      document.onmousemove=null;
      document.onmouseup=null;
      document.body.removeChild(oNewDiv);
      oDiv.style.left=oDiv2.style.left;
      oDiv.style.top=oDiv2.style.top;
    };
  };
};
</script>
</head>

<body>
<div id='div2'>
   <div id="div1">
   </div>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JSON 编辑器实现代码
Dec 06 Javascript
Google排名中的10个最著名的 JavaScript库
Apr 27 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 Javascript
jsonp跨域请求详解
Jul 13 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 Javascript
详解vue-cli项目中怎么使用mock数据
May 29 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
Apr 20 Javascript
浅谈react useEffect闭包的坑
Jun 08 Javascript
javascript事件委托的用法及其好处简析
Apr 04 #Javascript
基于javascript制作微博发布栏效果
Apr 04 #Javascript
纯js实现手风琴效果
Apr 17 #Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 #Javascript
Angular 根据 service 的状态更新 directive
Apr 03 #Javascript
jQuery中的Deferred和promise 的区别
Apr 03 #Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 #Javascript
You might like
新闻分类录入、显示系统
2006/10/09 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
强制设为首页代码
2006/06/19 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python实现串口自动触发工作的示例
2019/07/02 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
Python关于反射的实例代码分享
2020/02/20 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
python爬取抖音视频的实例分析
2021/01/19 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
临床护理求职信
2014/04/26 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
技术入股合作协议书
2014/10/07 职场文书
大学入学感言
2015/08/01 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers