0.1.11 • Published 5 years ago

drag-area v0.1.11

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

说明

添加一个可拖拽区域的库,通过拖拽,可以得到区域相对于父元素的位置信息。

可通过此库可实现图片热区,即为图片添加点击事件,进行跳转等功能,可快速生成静态活动页面

gif1

安装

npm install drag-area --save

导入

//By ES6 modules
import DragArea form 'drag-area'
//By DOM script
<script src="/node_modules/drag-area/dist/drag-area.min.js"></script>

使用

<body>
    <div id="container">
        <img src="http://pic.58pic.com/58pic/13/42/86/45f58PICdRF_1024.jpg" alt="">
    </div>
    <button id="add">添加</button>
    <button id="clear">清除所有</button>
    <button id="getAllAreas">获取所有area对象</button>
    <button id="getAllAreasInfo">获取所有area对象的位置信息</button>
</body>
<script>
    let dragArea = new DragArea('container')

    add.addEventListener('click', function() {
        dragArea.addArea({
            width: 100,
            height: 60,
            x: 100,
            y: 100,
            left: 20,
            top: 20,
            background: '#2aa7ff',
            opacity: 0.7
        })
    })

    clear.addEventListener('click', function() {
        dragArea.removeAllArea()
    })

    getAllAreas.addEventListener('click', function() {
        console.log(dragArea.getAllAreas())
    })

    getAllAreasInfo.addEventListener('click', function() {
        const areas = dragArea.getAllAreasInfo()
        areas.forEach(value => {
            console.log('=========================================')
            console.log('高度', value.height + 'px')
            console.log('宽度', value.width + 'px')
            console.log('距离顶部', value.top + 'px')
            console.log('距离左边', value.left + 'px')
            console.log('left 百分比', value.leftProportion)
            console.log('top 百分比', value.topProportion)
            console.log('width 百分比', value.widthProportion)
            console.log('height 百分比', value.heightProportion)
        })

    })

    dragArea.on('areaDbClick', function(area) {
        console.log(area)
    })
</script>

API

addArea

params: Object

参数解释类型
width生成区域的默认宽度Number
height生成区域的默认高度Number
x生成区域默认在X轴的偏移量Number
y生成区域默认在Y轴的偏移量Number
left生成区域的距离容器左侧初始定位Number
top生成区域的距离容器顶部初始定位Number
background生成区域的默认背景颜色String
opacity生成区域的默认透明度Number

向容器中添加一个可拖拽区域,执行此方法会返回一个拖拽区域实例

removeOneArea

params: Object

参数解释类型
area通过addArea函数得到的对象Object

移除某个可拖拽区域

示例:

let dragArea = new DragArea('container')

let area = dragArea.addArea()

dragArea.removeOneArea(area)

removeAllArea

params: no params

移除容器内所有可拖拽区域

getAllAreas

params: no params

获取当前容器内存在的所有可拖拽区域实例对象

getAllAreasInfo

获取当前容器内存在的所有可拖拽区域实例对象相对于容器的位置信息

返回值解释单位
height区域的高度px
width区域的宽度px
top区域相对于容器顶部的偏移量px
left区域相对于容器左侧的偏移量px
leftProportion区域相对于容器左侧的偏移量百分比
topProportion区域相对于容器顶部的偏移量百分比
widthProportion区域相对于容器的宽度百分比
heightProportion区域相对于容器的高度百分比

on

params: two params
argument[0]: event name
argument[1]: callback

监听容器的事件,目前支持的事件areaDbClick,当可拖拽区域被双击时会执行, 回调函数的参数为被双击的可拖拽区域实例对象

示例

let dragArea = new DragArea('container')

dragArea.on('areaDbClick', function(area) {
    console.log(area)       //  可拖拽区域实例对象
})