首先,为了使元素可拖动,需要给元素添加draggable的 属性,并且设置为 true :
- <div draggable=“true”></div>
当元素拖动时,会发生以下几个事件,虽然跟鼠标的mousedown,mousemove和mouseup类似,但是也有区别:
- ondragstart //拖拽开始
- ondrag //拖拽持续
- ondragend //拖拽结束
首先,为了使元素可拖动,需要给元素添加draggable的 属性,并且设置为 true :
当元素拖动时,会发生以下几个事件,虽然跟鼠标的mousedown,mousemove和mouseup类似,但是也有区别:
之前写过一次类似树叶落下的效果,当时想到的方法是,动态的往body里面添加元素,添加一些随机的属性,然后写一个动画,让他按照随机的速度落下,达到一种落差的效果,最后判断top值是否超过clientHeight,超过就remove掉。
嗯,看样子不错,也能跑起来,但是在安卓手机上测试,会有卡顿,后来优化了下,改成css3动画,再次测试,不错,安卓也不卡了,挺流畅,但是代码量又增加了,并且这样反复的对dom进行属性的重绘,添加和删除,效率很低。
今天换了另一种写法,所有动画效果全部利用css3来完成,也不用反复的进行dom添加和删除操作了,并且代码量是之前的三分之一。先看下面的演示效果吧。
大家在写页面的时候,使用jQuery往往只是用到几个功能,比如dom选择器、Ajax或者Animate,其它或许用不到;这种情况在移动端尤其明显,html5提供了方便的dom选择器,还有css3的高效率动画,庞大的jq显得不再那么重要,原生js一样很方便,下面是一个Ajax基本的封装。
注意:json返回使用了JSON.parse来解析的,如果ie7报错,需要引入json2.js,可前往这里下载:https://github.com/douglascrockford/JSON-js,写可以自行下载源码修改成 eval(“(“+xhr.responseText+”)”) 。