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 相关文章推荐
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
JS作用域链详解
Jun 26 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
详解Bootstrap 学习(一)入门
Apr 12 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 Javascript
JS前端轻量fabric.js系列物体基类
Aug 05 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数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
js里的prototype使用示例
2010/11/19 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python写的贪吃蛇游戏例子
2014/06/16 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
化学教学随笔感言
2014/02/19 职场文书
中文教师求职信
2014/02/22 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
2016公司年会通知范文
2015/04/25 职场文书
投标单位介绍信
2015/05/05 职场文书
八年级语文教学反思
2016/03/03 职场文书