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 相关文章推荐
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
BootStrap 附加导航组件
Jul 22 Javascript
jquery根据一个值来选中select下的option实例代码
Aug 29 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
jquery 多个radio的click事件实例
Dec 03 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
JS实现点击循环切换显示内容的方法
Oct 19 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
简述JS浏览器的三种弹窗
Jul 15 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php导出excel格式数据问题
2014/03/11 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jQuery的学习步骤
2011/02/23 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
jQuery实现飞机大战小游戏
2020/07/05 jQuery
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
python opencv实现简易画图板
2020/08/27 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
文化宣传方案
2014/03/13 职场文书
学校教师安全责任书
2014/07/23 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
四年级数学教学反思
2016/02/16 职场文书