要为大家详细介绍了HTML5拖放效果的实现代码,拖放即抓取对象以后拖到另一个位置。感兴趣的小伙伴们可以参考一下:
在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。
Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖动。但 Safari 5.1.2不支持拖动。
下面看看实现效果:
拖拽前
拖拽后
代码实现:
把draggable属性设置为true ,才能使元素可拖动。
然后,规定当元素被拖动时,会发生什么。
在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。
dataTransfer.setData() 方法设置被拖数据的数据类型和值:
在这个例子中,数据类型是 "Text",值是可拖动元素的 id ("drag1")。
ondragover 事件规定在何处放置被拖动的数据。
默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
这要通过调用 ondragover 事件的 event.preventDefault() 方法:event.preventDefault()
当放置被拖数据时,会发生 drop 事件。
在上面的例子中,ondrop 属性调用了一个函数,drop(event):
调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
被拖数据是被拖元素的 id ("drag1")
把被拖元素追加到放置元素(目标元素)中
若要实现来回拖动:
若要在两个地方来回拖动,只需将上面代码稍作修改就行了.将body中的代码改成:
然后在style样式中加上#div2就可以了:
也是一个小菜鸟,一次在做练习时遇到一个问题,就是在html5页面中嵌入视频的时候页面中只显示声音却不显示图像。HTML5中并没有指定视频解码器,它留给了浏览器来决定。虽然Safari和Internet Explorer9可以支持H.264格式(注:H.264是公认的mp4的标准编码)的视频,Firefox和Opera是坚持开源Theora 和Vorbis格式。因此,指定HTML5的视频时,你必须提供这两种格式。刚开始我以为视频的格式不对,我嵌入的视频是mp4格式的,可是试了好多次结果都一样,只有声音不显示图像,以前从没遇到过这种情况,瞬间懵了。后来上网查了查,才知道原来视频不光区分格式,相同的格式的情况下还区分编码。就拿mp4格式的视频来说吧,mp4有3种编码,mpg4(xdiv),mpg4(xvid),avc(h264),这三种格式虽然在播放器里可以正常播放,但是mpg(xdiv),mpg4(xvid)这两种格式嵌到html5页面里的时候就会出现上述我说的那种情况,转换成H264编码就可以网页正常播放了。可是如何给我们的视频转码(转换编码)呢?下面我就介绍一下如何使用格式工厂来转码(之所以我介绍用格式工厂来转码是因为我觉得格式工厂的功能太强大了,不仅能转换视频的格式还可以剪辑视频、音频,竟然还可以转换视频的编码,集多功能于一身):对于扩展名相同的视频文件它们的视频的编码可能是不一样的,如mp4格式的视频的编码就可能是mpg4(xdiv)或mpg4(xvid)或avc(h264),在用格式工厂软件进行视频转换时可以设置视频的编码格式,使视频可以让不同的播放器打开。
第一步:打开格式工厂软件,这里我以把视频转换为mp4格式为例说明单击[->mp4]按钮
页面需默认用极速核,增加标签:
<meta name="renderer" content="webkit">
若页面需默认用ie兼容内核,增加标签:
<meta name="renderer" content="ie-comp">
若页面需默认用ie标准内核,增加标签:
<meta name="renderer" content="ie-stand">
<!-- 字体编码 -->
<meta charset="utf-8" />
<!-- 关键字 -->
<meta name="keywords" content="" />
<!-- 说明 -->
<meta name="description" content="" />
<!-- 作者 -->
<meta name="author" content="" />
<!-- 设置文档宽度、是否缩放 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
<!-- 优先使用IE最新版本或chrome -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 360读取到这个标签立即钱换到极速模式 -->
<meta name="renderer" content="webkit" />
<!-- 禁止百度转码 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- UC强制竖屏 -->
<meta name="screen-orientation" content="portrait" />
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait" />
<!-- UC强制全屏 -->
<meta name="full-screen" content="yes" />
<!-- QQ强制全屏 -->
<meta name="x5-fullscreen" content="true" />
<!-- QQ应用模式 -->
<meta name="x5-page-mode" content="app" />
<!-- UC应用模式 -->
<meta name="browsermode" content="application">
<!-- window phone 点亮无高光 -->
<meta name="msapplication-tap-highlight" content="no" />
<!-- 安卓设备不自动识别邮件地址 -->
<meta name="format-detection" name="email=no" />
<!-- iOS设备 -->
<!-- 添加到主屏幕的标题 -->
<meta name="apple-mobile-web-app-title" content="标题" />
<!-- 是否启用webApp全屏 -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<!-- 设置状态栏的背景颜色,启用webapp模式时生效 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent/black/default" />
<!-- 半透明/黑色/默认白色 -->
<!-- 禁止数字识别为电话号码 -->
<meta name="format-detection" content="telephone=no" />
<!--
iOS图标
iPhone/iTouch默认是57*57
iPad,72*72,可以没有,但推荐有
Retina iPhone/Retina iTouch,114*114,可以没有,但推荐有
Retina iPad,144*144,可以没有,但推荐有
iPhone 6 plus是180*180,iPhone 6 是120*120
-->
<link rel="apple--touch-icon-precomposed" sizes="width*height" href="xxx.png" />
<!-- iOS启动画面 -->
<!-- iPad启动是不包含状态栏的 -->
<!-- 标准分辨率:1、竖屏(768*1004);2、横屏(1024*748)
Retina:1、竖屏(1536*2008);2、横屏(2048*1496) -->
<!-- iPhone/iTouch启动是包含状态栏的 -->
<!-- 标准分辨率(320*480)、Retina(640*960)、iPhone 5/iTouch 5(640*1136) -->
<link rel="apple-touch-startup-image" sizes="width*height" href="xxx.png" />
<!-- iPhone 6对应的图片大小是750×1294,iPhone 6 Plus 对应的是1242×2148 -->
<link rel="apple-touch-startup-image" href="xxx.png" media="(device-width:375px)">
<link rel="apple-touch-startup-image" href="xxx.png" media="(device-width:414px)">
<!-- 智能添加广告条 -->
<meta name="apple-itunes-app" content="app-id=myappstoreID,affiliate-data=myaffiliatedata,app-argument=myurl" />
<!--强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览; -->
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
<!-- iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;-->
<meta content="yes" name="apple-Mobile-web-app-capable" />
<!-- iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;-->
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
*请认真填写需求信息,我们会在24小时内与您取得联系。