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学习之旅(一):BOS项目使用的技术以及开发环境
    spring手动回滚
    tomcat下配置多端口,多项目
    centos7安装Mysql5.6
    windows phone7 下 Silverlight 异步读取网络图片
    Sencha Touch 本地化存储配置
    LCD1602显示接收的串口通讯字串
    QML 怎么在gridview中用Index定位? 怎么在代理中设置背景?
    89C52定时/计数器
    QML JSON 展示
  • 原文地址:https://www.cnblogs.com/Grani/p/11865708.html
Copyright © 2011-2022 走看看