| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- <template>
 
- 	<view>
 
- 		<view class="grace-drawer-shade" v-if="show" @click.stop="closeDrawer" @touchmove.stop.prevent="" :style="{backgroundColor:background}"></view>
 
- 		<view ref="graceDrawerMenu" v-if="show" class="grace-drawer-nav" @tap.stop="stopFun" 
 
- 		:style="{width:width+'rpx', left : direction == 'left' ? (width*-1)+'rpx' : 'none', top : top+'px', 
 
- 			right : direction == 'right' ? (width*-1)+'rpx' : 'none', 
 
- 			padding:padding, backgroundColor:slotBg}">
 
- 			<view class="grace-drawer-main"><slot name="links"></slot></view>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- export default {
 
- 	name: "graceDrawer",
 
- 	props: {
 
- 		width : {
 
- 			type : Number,
 
- 			default : 500
 
- 		},
 
- 		show : {
 
- 			type : Boolean,
 
- 			default : true
 
- 		},
 
- 		direction : {
 
- 			type : String,
 
- 			default : 'left'
 
- 		},
 
- 		background:{
 
- 			type : String,
 
- 			default : 'rgba(0, 0, 0, 0.5)'
 
- 		},
 
- 		slotBg:{
 
- 			type : String,
 
- 			default : 'rgba(255, 255, 255, 1)'
 
- 		},
 
- 		padding : {
 
- 			type : String,
 
- 			default : '30rpx'
 
- 		},
 
- 		top:{type:Number, value:0}
 
- 	},
 
- 	updated:function(){
 
- 		if(this.show){
 
- 			setTimeout(()=>{
 
- 				var moveX = this.direction == 'left' ? uni.upx2px(this.width) + 'px' : (uni.upx2px(this.width) * -1) + 'px';
 
- 				var animation = weex.requireModule('animation');
 
- 				animation.transition(this.$refs.graceDrawerMenu, {
 
- 					styles: {transform:'translate('+moveX+', 0)'},
 
- 					duration:200, 
 
- 					timingFunction: 'linear',
 
- 					needLayout:false,
 
- 					delay: 0 
 
- 					}, function (){}
 
- 				);
 
- 			}, 100);
 
- 		}
 
- 	},
 
- 	methods:{
 
- 		closeDrawer : function(){
 
- 			this.$emit('closeDrawer');
 
- 		},
 
- 		stopFun : function(){}
 
- 	}
 
- }
 
- </script>
 
- <style scoped>
 
- .grace-drawer-shade{position:fixed; width:750rpx; bottom:0; top:0; left:0; background-color:rgba(0, 0, 0, 0.5);}
 
- .grace-drawer-nav{background-color:#FFFFFF; position:fixed; bottom:0; top:0;}
 
- .grace-drawer-main{}
 
- </style>
 
 
  |