├── .gitattributes ├── README.md ├── package.json └── src └── drag-sort ├── 1px.less └── index.vue /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mpvue-drag-sort 2 | 3 | > 基于mpvue写的小程序拖拽组件 4 | 5 | ## 如何使用 6 | 7 | ``` 8 | npm i mpvue-drag-sort 9 | ``` 10 | 11 | ## 基本用法 12 | ``` bash 13 | 16 | 17 | 57 | ``` 58 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mpvue-drag-sort", 3 | "version": "1.0.2", 4 | "description": "A Mpvue project", 5 | "author": "LFZ", 6 | "private": false, 7 | "main": "src/drag-sort/index.vue", 8 | "scripts": {}, 9 | "license": "ISC" 10 | } 11 | -------------------------------------------------------------------------------- /src/drag-sort/1px.less: -------------------------------------------------------------------------------- 1 | .setLine(@c: #eee) { 2 | content: " "; 3 | position: absolute; 4 | left: 0; 5 | top: 0; 6 | width: 200%; 7 | border: 1rpx solid @c; 8 | color: @c; 9 | height: 200%; 10 | transform-origin: left top; 11 | transform: scale(0.5); 12 | } 13 | 14 | .vh-1px, .vh-1px-t, .vh-1px-b, .vh-1px-tb, .vh-1px-l, .vh-1px-r { 15 | position: relative; 16 | } 17 | 18 | .vh-1px { 19 | &:before { 20 | .setLine(); 21 | } 22 | } 23 | 24 | .vh-1px-t { 25 | &:before { 26 | .setTopLine(); 27 | } 28 | } 29 | 30 | .vh-1px-b { 31 | &:after { 32 | .setBottomLine(); 33 | } 34 | } 35 | 36 | .vh-1px-tb { 37 | &:before { 38 | .setTopLine(); 39 | } 40 | &:after { 41 | .setBottomLine(); 42 | } 43 | } 44 | 45 | .vh-1px-l { 46 | &:before { 47 | .setLeftLine(); 48 | } 49 | } 50 | 51 | .vh-1px-r { 52 | &:after { 53 | .setRightLine(); 54 | } 55 | } 56 | 57 | .setTopLine(@c: #eee) { 58 | content: " "; 59 | position: absolute; 60 | left: 0; 61 | top: 0; 62 | right: 0; 63 | height: 1rpx; 64 | border-top: 1rpx solid @c; 65 | color: @c; 66 | transform-origin: 0 0; 67 | transform: scaleY(0.5); 68 | } 69 | 70 | .setBottomLine(@c: #eee) { 71 | content: " "; 72 | position: absolute; 73 | left: 0; 74 | bottom: 0; 75 | right: 0; 76 | height: 1rpx; 77 | border-bottom: 1rpx solid @c; 78 | color: @c; 79 | transform-origin: 0 100%; 80 | transform: scaleY(0.5); 81 | } 82 | 83 | .setLeftLine(@c: #eee) { 84 | content: " "; 85 | position: absolute; 86 | left: 0; 87 | top: 0; 88 | width: 1rpx; 89 | bottom: 0; 90 | border-left: 1rpx solid @c; 91 | color: @c; 92 | transform-origin: 0 0; 93 | transform: scaleX(0.5); 94 | } 95 | 96 | .setRightLine(@c: #eee) { 97 | content: " "; 98 | position: absolute; 99 | right: 0; 100 | top: 0; 101 | width: 1rpx; 102 | bottom: 0; 103 | border-right: 1rpx solid @c; 104 | color: @c; 105 | transform-origin: 100% 0; 106 | transform: scaleX(0.5); 107 | } 108 | -------------------------------------------------------------------------------- /src/drag-sort/index.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 171 | 172 | 212 | --------------------------------------------------------------------------------