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 相关文章推荐
js Date自定义函数 延迟脚本执行
Mar 10 Javascript
javascript 二分法(数组array)
Apr 24 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
通过源码分析Vue的双向数据绑定详解
Sep 24 Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 Javascript
JavaScript实现随机点名程序
Mar 25 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
实例讲解React 组件生命周期
Jul 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
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP目录操作实例总结
2016/09/27 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
python针对excel的操作技巧
2018/03/13 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
Keras设置以及获取权重的实现
2020/06/19 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
应聘教师自荐信
2013/10/12 职场文书
大学毕业生简单自荐信
2013/11/05 职场文书
趣味体育活动方案
2014/02/08 职场文书
大学新生军训感言
2014/02/25 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
企业人事任命书
2014/06/05 职场文书
普通话宣传标语
2014/06/26 职场文书
2014企业年终工作总结
2014/12/23 职场文书
拾金不昧感谢信
2015/01/21 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
联欢会开场白
2015/06/01 职场文书
门球健将观后感
2015/06/16 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书