博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小练习:元素的拖放
阅读量:6428 次
发布时间:2019-06-23

本文共 938 字,大约阅读时间需要 3 分钟。

看到很多地方都用到了拖放,因此就自己尝试写了一个,刚开始以为很简单,结果到处都是陷阱。

不多说了,先放写好的程序,在来说说其中遇到的问题。

不过大家可以先自己写写,再来看可能效果更好。

    
View Code

 

问题1:添加事件

刚开始我把事件都添加在dom上,然后就发生了奇怪的事,即使鼠标松开了,我在移动还是会动的,

dom.addEventListener("mousedown",dragFn=function  (event) {......}dom.addEventListener('mouseup', dropFn = function(){ dragFlag = false; });//设置为false,禁止拖动dom.addEventListener('mousemove', mFn = function(event){ onDrag(event); })

后面我再去参考别人的,发现人家都只是在鼠标按下的时候添加到dom上,而其他时候就只是绑定事件而已。

dom.addEventListener("mousedown",dragFn=function  (event) {......}addEventListener('mouseup', dropFn = function(){ dragFlag = false; });//设置为false,禁止拖动addEventListener('mousemove', mFn = function(event){ onDrag(event); })

问题2:就是pageX,innerWidth,innerHeight,clientX,之间的区别与联系。具体参看我写的另一篇文章。

问题3:就是元素的样式获取

刚开始我采用style.left的方式获取,但是始终为零。

后面我才知道,style.left只能获取写在标签上的样式,不能获取写在css上的和style中的,如下图所示。

 

因此我就改用其他方法,总不能将样式写在标签上。

这样就可以成功获得这些样式了。

后面等我学了设计模式和jQuery之后,我在把它写成一个小的插件,

转载地址:http://gfnga.baihongyu.com/

你可能感兴趣的文章
统计连续时间
查看>>
1、Monkey环境搭建
查看>>
通过cordova将vue项目打包为Android app
查看>>
一些分类方法的比较(转)
查看>>
典型的软件过程模型
查看>>
Gson如何解析key值是数字的json数据
查看>>
虚拟短信
查看>>
英文技术Podcast推荐 - 英语技术一起学
查看>>
linux ubuntu12.04 安装mysql
查看>>
理解实例、原型搜索顺序
查看>>
Laravel5.5 生成测试数据
查看>>
springboot整合mybatis及封装curd操作-配置文件
查看>>
express.static设置缓存
查看>>
MVC过滤器(执行顺序)
查看>>
Linux 学习 Eclipse美化,解决工具栏过大和 Javadoc背景色修改
查看>>
Java基础之String类
查看>>
Selenium +Chrome浏览器如何模拟手机操作
查看>>
在Mac OS里安装和升级Git
查看>>
JavaScript知识思维导图
查看>>
SQL-11 获取所有员工当前的manager,如果当前的manager是自己的话结果不显示
查看>>