HTML5拖动技术

HTML5拖动

 

首先明白什么是拖动

拖放即抓取对象以后将其拖到另外一个位置。

HTML5标准中,拖动是属于其中的一部分,任何属性都可以拖动

 

 

浏览器支持

Internet Explorer 9FirefoxOpera 12Chrome 以及 Safari 5 支持拖放。

 

拖动解析:

先提供本次解析的总代码:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>DOCUMENT</title>
    <script src="../js/jquery-2.1.1.min.js"></script>
    <style>
        *{
            margin:0;
            padding:0;
        }
        .a{
            width:10rem;
            height:10rem;
            border:1px solid black;
        }
        .b,.c{
            width:15rem;
            height:15rem;
            border:1px solid red;
            overflow-x:hidden;
            overflow-y:auto;
        }
    </style>
    <script>
        $(function(){
            $(".a")[0].ondragstart = function(e){
                console.log(e.dataTransfer);//用于研究event.dataTransfer对象
                e.dataTransfer.setData("Text", $(this).attr("class"));
            };

            $(".a")[0].ondragend = function(e){
                console.log("dragend");
            };
            $(".a")[0].ondragenter = function(e){
                console.log("dragenter");
            };
            $(".b")[0].ondrop = function(e){
                e.preventDefault();
                console.log("ondrop");
                var $i = "." + e.dataTransfer.getData("Text") +"";
                $(this).append($($i).clone());
            }
            $(".b")[0].ondragover = function(e){
                e.preventDefault();
            }
        });
    </script>
</head>
<body>
    <div class="a" draggable = "true"></div>
    <div class="b"></div>
    <div class="c"></div>
</body>
</html>


步骤:

第一步,将元素设定为可以被拖动。

通过draggable = true来设定一个元素是否被允许拖动。

<div class="a" draggable = "true"></div>


 

第二步,通过ondragstart()将被拖动的元素的一些信息加入event.dataTransfer对象中。

ondragstart()函数大家从这个函数的名字上就可以知道,在拖动开始的时候回触发这个函数。然后我们就需要在这个函数里面进行一些处理。

$(".a")[0].ondragstart = function(e){
    console.log(e.dataTransfer);//用于研究event.dataTransfer对象
    e.dataTransfer.setData("Text", $(this).attr("class"));
};


 

其中dataTransfer对象的setData便是获取一些被拖动元素的信息,以至于在放置这个元素的时候可以将它加入。



第三步,将一个元素设定为可以被放置元素。

ondragover()就这个函数名称大家可能会疑惑,拖动覆盖,其实它的意思大概是当一个元素在我的元素区域范围内时,是否允许那个拖动的元素放置在我的元素区域内。

而对于HTML5标准中,一个元素默认是不能拖动一个元素放到自己区域中来的额,所以我们要在这个函数中执行一个语句,event.preventDefault()函数会取消掉一个元素原本要进行的动作。

$(".b")[0].ondragover = function(e){
    e.preventDefault();
}


 

第四步,当一个元素在另外一个元素中放下时,另外一个元素应该干什么。如此就需要一个函数,ondrop()

这个函数是在放置一个元素时触发。

$(".b")[0].ondrop = function(e){
    e.preventDefault();
    var $i = "." + e.dataTransfer.getData("Text") +"";
    $(this).append($($i).clone());
}


 

当然还有其他的函数。

ondragend(),当前被拖动的元素结束拖动时触发(ondrop函数发生在此函数之前)。

ondragenter(),当前被拖动的元素进入一个可以放置元素的元素时触发。

ondragleave(),当前被拖动的元素结束拖动时触发。

其中大家要注意的是,一些函数是针对哪个元素的。

针对拖动元素的函数如下:

ondragend(),ondragenter(),ondragleave(),ondragstart(),

针对被放置元素的容器的函数如下:

ondragover(),ondrop()

 


对于dataTransfer对象大家可以console.log打印他到控制台看看他的一些函数,这里再讲一个常用的函数那边是setDragImage()用于设定鼠标移动过程中随鼠标一起移动的效果图,这个东西的设定必须在dragstart中设置。

 之后会提供一个用HTML5制作而成的插件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于HTML5技术的音乐播放器的设计与实现,需要考虑以下几个方面: 1. 页面布局:音乐播放器需要有一个清晰的页面布局,包括播放器控制区域、歌曲列表区域、歌曲封面区域等。 2. 播放器控制:播放器控制需要包括播放、暂停、上一曲、下一曲、音量调节等功能,同时需要实现播放进度条的显示和拖拽控制。 3. 歌曲列表:歌曲列表需要显示当前播放列表中的歌曲,同时需要支持歌曲的添加、删除、排序等操作。 4. 歌曲封面:歌曲封面需要显示当前播放歌曲的封面图片,同时需要支持歌曲封面的切换。 5. 音乐文件:音乐播放器需要支持多种音乐文件格式,如mp3、wav等,并且需要实现音乐文件的加载和播放。 总之,基于HTML5技术的音乐播放器的设计与实现需要考虑多个方面,需要综合运用HTML、CSS、JavaScript等技术,才能实现一个功能完善、界面美观的音乐播放器。 ### 回答2: HTML5技术的音乐播放器是现代化网络应用的必备工具之一。在这种播放器中,HTML5技术被用来处理音频数据并实现播放、暂停、停止、音量调节等基本功能。同时,它还能支持多个音频格式及相关的特性,如异步编码、原生编解码等,提供更好的音频体验。 在设计一个基于HTML5技术的音乐播放器时,首先需要确定它的功能要求和用户需求,并选择合适的音频文件格式。接下来,设计播放器的UI界面,包括主题、颜色、图标、字体等方面。UI界面应该简单、直观、易于使用,并适应多种设备和显示尺寸。 在实现播放器时,需要使用 HTML5的audio元素,这个元素提供了访问和操作音频的API,也提供了多种事件和方法,如播放状态、音量调节等。在JS和CSS编写方面,需要考虑到浏览器兼容性,应尽可能使用CSS3和原生JS实现,用到jQuery这类库可大大增加代码负担。播放器的实现还可以结合一些第三方API,如音乐库API、后台数据保存API,使播放器具有更多的功能。 总之,一个基于HTML5技术的音乐播放器的设计与实现需要充分考虑用户需求和UI界面设计,同时合理使用HTML5 API以及第三方API,优化性能和增强用户体验。只有这样才能满足用户的不同需求并提供更加便捷、流畅的音乐播放体验。 ### 回答3: 随着HTML5技术的发展,现在基于HTML5的音乐播放器已经被广泛应用。既然是基于HTML5的,则意味着无需使用Flash,能够在多个设备上使用,是音乐播放器的优选方案。 现在我们就来探讨一下基于HTML5技术的音乐播放器的设计与实现。 基本功能 首先是音乐播放器的基本功能,即播放、暂停、上一曲、下一曲等。我们可以通过HTML5的audio标签来实现,同时加上一些JavaScript脚本来控制音乐播放器的行为。 暂停与播放 要实现播放、暂停的功能,我们可以使用HTML5的audio标签上的play()和pause()方法。这些方法可以在JavaScript中被调用来控制音乐播放器的播放状态。 上一曲与下一曲 为了实现上一曲和下一曲的功能,我们可以在JavaScript中创建一个播放列表,然后使用array来存储音乐文件的URL,一旦上一曲或下一曲按钮被按下,就可以从列表中获取下一首或上一首曲目的URL,并将其加载到audio标签中进行播放。 音乐进度条 为了让用户可以知道当前播放的进度,我们可以使用HTML5的range输入标签来实现音乐进度条。在JavaScript中,我们可以记录音乐的播放时间,并且将其与音乐的总时长进行比较,这样就可以实时更新进度条的位置了。 添加歌词 音乐播放器经常有添加歌词的需求,我们可以将歌词用一个文本文件来存储,并在JavaScript中将其加载进来。一旦歌词被加载,我们可以对它进行解析,并在播放器上实时滚动显示。 总结 在HTML5技术支持下,音乐播放器已经变得更加易于实现和使用了。上面的设计和实现只是一个基本的框架,不同的使用场景和需求会有不同的实现方案,但作为开始,大家可以按照这个框架去构建一个自己的音乐播放器,从而实现各种播放音乐的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值