| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- <template>
 
- 	<view class="grace-shade" ref="graceShade" 
 
- 	:style="{backgroundColor:background, left:left}" 
 
- 	@tap.stop="closeShade" @touchmove.stop.prevent="">
 
- 		<slot></slot>
 
- 	</view>
 
- </template>
 
- <script>
 
- var animation = weex.requireModule('animation');
 
- const dom = weex.requireModule('dom');
 
- export default{
 
- 	props:{
 
- 		background : {type:String, default:"rgba(0, 0, 0, 0.1)"},
 
- 		zIndex : {type:Number, default:1},
 
- 		show : {type:Boolean, default:true}
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			left : '-2000px'
 
- 		}
 
- 	},
 
- 	created:function(){
 
- 		if(this.show){ this.showIt(); }else{ this.hideIt();}
 
- 	},
 
- 	watch:{
 
- 		show:function(val){
 
- 			if(val){ this.showIt(); }else{ this.hideIt(); }
 
- 		}
 
- 	},
 
- 	methods:{
 
- 		closeShade : function(){this.$emit('closeShade');},
 
- 		showIt : function(){
 
- 			this.left = '0px';
 
- 			var graceShade = this.$refs.graceShade;
 
- 			animation.transition(graceShade, {
 
- 				styles: {opacity:1},
 
- 				duration:280, 
 
- 				timingFunction: 'ease',
 
- 				needLayout:false,
 
- 				delay: 0 
 
- 			});
 
- 		},
 
- 		hideIt : function(){
 
- 			var graceShade = this.$refs.graceShade;
 
- 			animation.transition(graceShade, {
 
- 				styles: {opacity:0},
 
- 				duration:280, 
 
- 				timingFunction: 'ease',
 
- 				needLayout:false,
 
- 				delay: 0 
 
- 			});
 
- 			setTimeout(()=>{
 
- 				this.left = '0px';
 
- 			}, 280);
 
- 		}
 
- 	}
 
- }
 
- </script>
 
- <style scoped>
 
- .grace-shade{position:fixed; width:750rpx; left:-2000px; opacity:0; top:0; bottom:0; z-index:1; justify-content:center; align-items:center;}
 
- </style>
 
 
  |