js css3实现图片拖拽效果


Posted in Javascript onMarch 04, 2017

本文实例为大家分享了css3实现图片拖拽效果的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
      body{
        text-align: center;
      }
      .container{
        display: flex;
        justify-content: center;
      }
      .colorBox{
        width: 100px;
        height: 100px;
        border:1px solid gray;
        margin: 0 20px;
      }
      .showBox{
        width: 100px;
        height: 100px;
        border:5px dashed gray;
        margin: 0 auto;
      }
      .colorBox:nth-child(1){
        background-color: orange;
      }
      .colorBox:nth-child(2){
        background-color: skyblue;
      }
      .colorBox:nth-child(3){
        background-color: yellowgreen;
      }
      img{
        border: 1px solid gray;
        margin:0 20px;
      }
    </style>
  </head>

  <body>
    <!--h1{支持拖拽的元素}+img[src='images/lf.jpg']*3+h1{需要开启拖拽的元素}+div.colorBox*3+h1{展示框}+div.showBox-->
    <h1>支持拖拽的元素</h1>
    <img src="images/lf.jpg" alt="" />
    <img src="images/nm.jpg" alt="" />
    <img src="images/sl.jpg" alt="" />
    <h1>需要开启拖拽的元素</h1>
    <div class='container'>
      <!--添加开启拖拽属性-->
      <div class="colorBox" draggable="true"></div>
      <div class="colorBox" draggable="true"></div>
      <div class="colorBox" draggable="true"></div>
    </div>
    <h1>展示框</h1>
    <div class="showBox"></div>
  </body>

</html>
<script type="text/javascript">
  
  // 定义全局变量 保存 拖放元素
  var moveDom ;
  
  // 让元素 能够被 拖放的内容 丢进去
  document.querySelector('.showBox').ondragover = function (e){
    //防止浏览器默认行为(W3C)
    e.preventDefault();
  }
  
  // 拖放元素 丢到 容器内 会触发 ondrop事件
  // 如果没有在 ondragover中 阻止默认行为 那么 无法触发 ondrop事件
  document.querySelector('.showBox').ondrop = function (){
    //console.log(moveDom);
    if(moveDom.src){
      // 如果 src有值 那么设置src属性
      // 获取 moveDom的src属性 并赋值给 盒子即可
    this.style.background = 'url('+moveDom.src+')no-repeat center/cover';
    }else{
      // 如果src没有值 那么 设置背景颜色
//      console.log(moveDom);
//      console.log(moveDom.style.backgroundColor);
      // 该方法 返回的内容是 style属性
      // getComputedStyle 能够获取 style标签中 写的样式
      console.log(window.getComputedStyle(moveDom).backgroundColor);
      this.style.backgroundColor = window.getComputedStyle(moveDom).backgroundColor;
    }
  }
  
  // 当我们开始拖放元素的时候 会触发 ondragstart事件
  var imgs = document.querySelectorAll('img');
  for (var i=0;i<imgs.length;i++) {
    imgs[i].ondragstart = function (){
      moveDom = this;
    }
  }
  
  
  // 为div绑定拖拽开始事件
  var colorBoxs = document.querySelectorAll('.colorBox');
  for (var i=0;i<colorBoxs.length;i++) {
    colorBoxs[i].ondragstart = function (){
      moveDom = this;
    }
  }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript DOM 学习第七章 表单的扩展
Feb 19 Javascript
jquery+json实现的搜索加分页效果
Mar 31 Javascript
JavaScript实现继承的4种方法总结
Oct 16 Javascript
JavaScript实现自动消除按钮功能的方法
Aug 05 Javascript
JavaScript实现按键精灵的原理分析
Feb 21 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
Nov 10 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
Feb 27 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
Sep 07 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 #Javascript
JavaScript中最常见的三个面试题解析
Mar 04 #Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 #Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
Nov 24 #Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 #Javascript
JS html时钟制作代码分享
Mar 03 #Javascript
AngularJS路由实现页面跳转实例
Mar 03 #Javascript
You might like
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP加密技术的简单实现
2016/09/04 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
家长会后的感想
2015/08/11 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
创业计划书之养殖业
2019/10/11 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
介绍一下28个JS常用数组方法
2022/05/06 Javascript