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 相关文章推荐
arguments对象
Nov 20 Javascript
js异或加解密效果代码
Jun 25 Javascript
javascript算法学习(直接插入排序)
Apr 12 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
thinkphp中常用的系统常量和系统变量
Mar 05 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
node.JS路径解析之PATH模块使用方法详解
Feb 06 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
python web框架 django wsgi原理解析
2019/08/20 Python
详解python中eval函数的作用
2019/10/22 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
大一自我鉴定范文
2013/10/04 职场文书
医院护士工作检讨书
2014/10/26 职场文书
个人思想政治总结
2015/03/05 职场文书
中英文求职信范文
2015/03/19 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书