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 相关文章推荐
$.ajax json数据传递方法
Nov 19 Javascript
js 表单验证方法(实用)
Apr 28 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
Js点击弹出下拉菜单效果实例
Aug 12 Javascript
Javascript中各种trim的实现详细解析
Dec 10 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
May 29 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
Apr 03 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
Vue关于组件化开发知识点详解
May 13 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
python静态方法实例
2015/01/14 Python
Python AES加密模块用法分析
2017/05/22 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
《跨越百年的美丽》教学反思
2014/02/11 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
开学典礼决心书
2014/03/11 职场文书
win10安装配置nginx的过程
2021/03/31 Servers