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="data:images/lf.jpg" alt="" />
<img src="data:images/nm.jpg" alt="" />
<img src="data: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>
Css3中拖拽效果的实例(带有注释~欢迎指教)的更多相关文章
- 拖拽系列一、JavaScript实现简单的拖拽效果
前端拖拽相关应用汇总 在现实生活中就像男孩子牵着(拖着)女朋友的手穿过马路:从马路的一端走到另一端这种场景很常见: 而在前端开发中拖拽效果也算是前端开发中应用最常见.最普遍的特效:其拖拽涉及知 ...
- jQuery的DOM操作实例(2)——拖拽效果&&拓展插件
一.原生JavaScript编写拖拽效果 二.jQuery编写的拖拽效果 三.在jQuery中拓展一个拖拽插件
- RecyclerView 与 ItemTouchHelper 实现拖拽效果
截图 需求 App 开发新的需求,要求 RecyclerView 实现的九宫格样式可以拖拽,松手以后变更位置,类似于手机桌面拖动 app 变更位置. 分析 经过搜索,发现 support 中带有一个类 ...
- JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
转自<JS实现漂亮的窗口拖拽效果(可改变大小.最大化.最小化.关闭)>:http://www.jb51.net/article/73157.htm 这篇文章主要介绍了JS实现漂亮的窗口 ...
- Swift2.0下UICollectionViews拖拽效果的实现
文/过客又见过客(简书作者)原文链接:http://www.jianshu.com/p/569c65b12c8b著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文UICollecti ...
- CSS3动画详解(结合实例)
一.使用CSS3动画代替JS动画 JS动画频繁操作DOM导致效率非常低 在频繁的操作DOM和CSS时,浏览器会不停的执行重排(reflow)和重绘(repaint) 可以避免占用JS主线程 这边就不细 ...
- JavaScript实现最简单的拖拽效果
一.一些无关痛痒的唠叨 拖拽还是挺不错的一个页面效果,我个人认为,其生命力在于可以让用户自己做一些操作,所谓自定义.例如: ①浏览器标签顺序的拖拽切换 现在基本上所有的选项卡式的浏览器都有顺序拖拽切换 ...
- 测试css3的动画效果在display:none的时候不耗费性能
也许你也有这个疑惑,动画一直在播放,那它不显示出来的时候也一直在播放的话,那是否一直占用资源呢? <!doctype html> <html> <head> < ...
- element-UI ,Table组件实现拖拽效果
拖拽效果,先放效果图,步骤放在后面~~ 一.引入三方插件 1.引入sortable.js的包: npm install sortable.js --save 2.或者npm i -S vuedragg ...
随机推荐
- java基本编译
1.java语言严格区分大小写:1个源文件其中最多只能有一个public类:源文件必须和public类同名:每个类对应一个class字节码,且同名. 2.编译. javac -d dir Hell ...
- (转)一张图学会Dockerfile
原文:http://blog.51cto.com/kusorz/1942816 前言 Dockerfile是非常容易学的,和SHELL相比那简单的太多了. Dockerfile是为快速构建docker ...
- (转)AIX ODM 简介
什么是 ODM 原文:https://www.ibm.com/developerworks/cn/aix/library/1105_chenwei_odm/ Windows 的注册表相信大家都知道,是 ...
- 角色用户权限RBAC
关于角色.用户.权限的表设计,已经成为经典中的经典,到处都在用,这里只是收录一下: 角色表:{role_id,role_name} 用户表:{user_id,user_name} 权限表:{permi ...
- RabbitMQ初学之一:exchange与queue的绑定
最近公司需要使用RabbitMQ,但我之前一直使用的是ActiveMQ,对RabbitMQ进行了初步的学习,但是还不系统,自己做了一些小测试,怕自己以后忘了 一. 背景 拿到代码以后,发现,生产者在向 ...
- Attribute基本介绍
一.基础知识点 1.什么是Attribute? MSDN:公共语言运行时允许你添加类似关键字的说明,叫做Attribute,它可以对程序中的元素进行标注,如类型.字段.方法和属性等.Attribute ...
- Hibernate3.3.2_JUnit_BoforeClass不报异常的Bug处理
假如你把配置文件写错了,myeclipse竟然不报错,只说sf空指针. <mapping class="com.oracle.hibernate.model."/> / ...
- Hibernate5.1+Sqlserver2000分页查询
前几天改到一个bug:从MS SQLserver上面同步表结构并且采集数据写入其他库.然后用的核心技术是用的Hibernate. 其中bug出在SQLServer2000版本上.排查下来发现2000版 ...
- WPF中Window的ShowInTaskbar、Owner和Topmost属性
1. ShowInTaskbar:设置窗口是否在任务栏上有一席之位,默认为true, 当在父窗口上新开一个子窗口时,任务栏上就会出现两个窗口,所以当要实现 不管开启多少个窗口,在任务栏上都只显示一个窗 ...
- jmap查看内存使用情况与生成heapdump--转
http://www.webspherechina.net/home/space.php?uid=191&do=blog&id=7572 如果想分析自己的JAVA Applicatio ...