zoukankan      html  css  js  c++  java
  • 拖放

    ※ 需求是从设备列表中拖动设备放到区域中

    页面分上下两部分,上部分用 swiper 来展示区域块,一屏两行三列,更多的区域通过左右滑动来查看
    下部分的设备列表用分页的形式展示

    拖动依旧是老套路使用鼠标按下、鼠标移动和鼠标抬起事件
    事先准备一个遮罩层,区域块的 z-index 要比遮罩层高,这样拖放设备的时候区域块就有了高亮

    鼠标按下时根据当前设备和鼠标的坐标,动态创建一个 div id为 sign,并注册鼠标移动事件,让 sign 跟着鼠标移动
    这样就有了拖拽的效果,同时也为区域块注册鼠标进入事件,这样就知道鼠标移动到了哪个区域块

    由于 sign 的遮挡,鼠标进入区域时不会触发鼠标进入事件
    注册鼠标抬起,抬起时删除 sign ,鼠标下所在的区域块触发鼠标进入事件,这样就知道哪个设备到了哪个区域,为哪个区域添加 div 以表示设备已添加到该区域

    有个问题是鼠标移动太快(疯狂来回移动时),sign 的移动有延迟,跟不上鼠标移动速度,没了 sign 的遮挡,会多次触发区域的鼠标进入事件,可以设置 sign 的伪元素 ::after,伪元素要足够大,这样无论鼠标移动多快,都不会超出 sign 的遮挡范围

    ※ 页面内有可切换的1、4、9、16画面的视频,每个视频位置可随意拖动更改
    使用了基于 vue 的 vuedraggable 插件实现
    另外页面最右侧有设备列表,也要实现拖拽到播放区进行播放,因为播放区视频和设备列表不是同一个 v-for 渲染的,所以插件可能不管用
    这次使用了了 h5 的拖放事件

  • 相关阅读:
    java 上传图片
    getElementById 鼠标经过字体改变颜色
    getElementById 学习
    css的绝对定位与相对定位
    关于For循环
    扩展方法的应用
    关于Function 的学习笔记
    <a>标签中查找文件的方法
    关于Name ID class属性的区别
    使用float设置经典的网站前端结构
  • 原文地址:https://www.cnblogs.com/Grani/p/11865708.html
Copyright © 2011-2022 走看看