当前位置: 首页 > news >正文

吉首市建设局官方网站网站建设类的手机软件

吉首市建设局官方网站,网站建设类的手机软件,成都学校网站建,wordpress增加模板拖拽#xff08;这两个字看了几遍已经不认识了#xff09; 说到拖拽#xff0c;应用场景不可谓不多。无论是打开电脑还是手机#xff0c;第一眼望去的界面都是可拖拽的#xff0c;靠拖拽实现APP或者应用的重新布局#xff0c;或者拖拽文件进行操作文件。 先看效果图这两个字看了几遍已经不认识了 说到拖拽应用场景不可谓不多。无论是打开电脑还是手机第一眼望去的界面都是可拖拽的靠拖拽实现APP或者应用的重新布局或者拖拽文件进行操作文件。 先看效果图如何实现一个如图HTML元素的拖拽并排序 HTML中的拖拽事件drag drop 参考MDN中文文档 事件类型 drag 当拖拽的元素或者选中的文本时触发* dragend 当拖拽元素结束时触发* dragenter 当拖拽元素或选中的文本到一个可释放目标时触发* dragleave 当拖拽元素或选中的文本离开一个可释放目标时触发* dragover 当元素或选中的文本被拖到一个可释放目标上时触发每 100 毫秒触发一次* dragstart 当用户开始拖拽一个元素或选中的文本时触发* drop 当元素或选中的文本在可释放目标上被释放时触发Coding 写一段简单的CSS和html 实现初始的页面 css*{margin: 0;padding: 0;box-sizing: border-box;}ul{margin: 200px auto;width: 200px;list-style-type: none;}li{margin: 5px;text-align: center;width: 200px;height: 30px;background: skyblue;}.list .moving{background: transparent;color: transparent;border: 1px dashed #ccc;} htmlul classlistli 1/lili 2/lili 3/lili 4/lili 5/li/ul 此时我们的页面如下图 现在还不可以进行拖拽操作为了可以实现拖拽操作我们必须给每个元素设置 draggable“true” ul classlistli draggabletrue1/lili draggabletrue2/lili draggabletrue3/lili draggabletrue4/lili draggabletrue5/li/ul 元素已经可以基础的拖拽 接下来我们需要在JS中对DOM元素进行一系列操作来实现对应的效果 1.实现拖出去的元素原位置样式变为透明虚线 2.实现拖动到其他元素上时列表顺序发生改变 let list document.querySelector(.list)let currentLi// 记录拖拽元素 我们用事件委托监听 “dragstart” 事件给拖动的元素添加类名修改样式这里会出现奇怪的一幕就是拖动的样式和原来的样式同时变成了透明。 list.addEventListener(dragstart,(e){e.dataTransfer.effectAllowed move // 拖动样式改为 movecurrentLi e.targetcurrentLi.classList.add(moving)}) 这里会出现奇怪的一幕就是拖动的样式和原来的样式同时变成了透明。这是因为跟随鼠标拖动的元素的样式在拖动的那一刻是原始元素的样式所以也会添加moving 那么在这里我们加一个异步 list.addEventListener(dragstart,(e){e.dataTransfer.effectAllowed movecurrentLi e.targetsetTimeout((){currentLi.classList.add(moving)})}) 到这里距离目标又更近了一步 接下来我们需要在拖动的过程中对列表的元素进行重新的排序 Node.insertBefore()方法在参考节点之前插入一个拥有指定父节点的子节点 list.addEventListener(dragenter,(e){e.preventDefault()// 阻止默认事件if(e.target currentLi||e.target list){ // 当移动到当前拖动元素或者父元素上面我们不做操作return}let liArray Array.from(list.childNodes)let currentIndex liArray.indexOf(currentLi) // 获取到拖动元素的下标let targetindex liArray.indexOf(e.target) // 获取到目标元素的下标if(currentIndextargetindex){list.insertBefore(currentLi,e.target.nextElementSibling)}else{list.insertBefore(currentLi,e.target)}}) 最后我们需要在拖拽结束将元素的moving类名移除,以及阻止拖拽到一个目标上的默认事件否则会出现禁止 list.addEventListener(dragover,(e){e.preventDefault()})list.addEventListener(dragend,(e){currentLi.classList.remove(moving)}) 至此一个简单的拖拽排序功能就实现了 完整代码 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle *{margin: 0;padding: 0;box-sizing: border-box;}ul{margin: 200px auto;width: 200px;list-style-type: none;}li{margin: 5px;text-align: center;width: 200px;height: 30px;background: skyblue;}.list .moving{background: transparent;color: transparent;border: 1px dashed #ccc;} /style /head bodyul classlistli draggabletrue1/lili draggabletrue2/lili draggabletrue3/lili draggabletrue4/lili draggabletrue5/li/ulscript let list document.querySelector(.list)let currentLilist.addEventListener(dragstart,(e){e.dataTransfer.effectAllowed movecurrentLi e.targetsetTimeout((){currentLi.classList.add(moving)})})list.addEventListener(dragenter,(e){e.preventDefault()if(e.target currentLi||e.target list){return}let liArray Array.from(list.childNodes)let currentIndex liArray.indexOf(currentLi)let targetindex liArray.indexOf(e.target)if(currentIndextargetindex){ list.insertBefore(currentLi,e.target.nextElementSibling)}else{list.insertBefore(currentLi,e.target)}})list.addEventListener(dragover,(e){e.preventDefault()})list.addEventListener(dragend,(e){currentLi.classList.remove(moving)}) /script /body /html 最后 最近还整理一份JavaScript与ES的笔记一共25个重要的知识点对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识提升工作效率。 有需要的小伙伴可以点击下方卡片领取无偿分享
http://www.dnsts.com.cn/news/75188.html

相关文章:

  • 做私人网站 违法江宁区住房与城乡建设局网站
  • 免费获取ppt模板的网站建筑工程网站源码
  • wordpress的字体禁用西安百度关键词优化
  • 山东临沂市需要建设网站的公司公司注销网站备案申请表
  • 网站开发网站模板设计响应式企业网站开发所用的平台
  • 成都网站建设cdsqywl孝义网站建设
  • 外贸网站框架制作app的流程
  • 谷歌网站英文域名价值评估网
  • 上海中国建设银行网站注册公司注册资金最低多少钱
  • 做网站买二手域名app定制开发公司在哪里
  • 智慧团建入口登录网站分布式加载网站的静态
  • 哈尔滨php网站开发公司个人网站不能有盈利性质
  • 高周波做网站程序开发是干什么的
  • 免费做电子目录的网站百度推广关键词
  • html网站源代码wordpress 会员系统
  • 邯郸做移动网站的地方外贸高端网站建设
  • 做兽设的网站网站建设感受
  • 重庆建设部网站阿里云服务器做网站外网访问慢
  • 吴忠北京网站建设今天时政新闻热点是什么
  • 用自己的电脑建网站如何开发自己公司的网站
  • 中国网站回收那个网站做推广好
  • 福甭市建设局网站开展我国电子网站建设
  • 网站标题上的小图标怎么做如果做局域网影音网站
  • 南宁网站开发网站建设功能需求分析
  • 网站建设 音频插件网站和新媒体建设审批制度
  • 网站开发和维护费用济南做网站维护的公司
  • 陕西建设监理协会网站网站运营策划
  • 如何去建立和设计一个公司网站自己做网站美工
  • iis网站的建设网页版游戏排行榜枪
  • 纯静态网站怎么入侵网站建设的技巧有哪些