12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <template>
- <view class="gui-totop gui-fade-in"
- hover-class="gui-tap"
- v-if="show"
- @tap="totop"
- :style="{
- bottom:bottom,right:right,
- backgroundColor:background,zIndex:zIndex,
- borderRadius:borderRadius
- }">
- <text class="gui-icons gui-block-text gui-totop-text"
- :style="{
- color:color,
- fontSize:fontSize
- }"></text>
- </view>
- </template>
- <script>
- export default{
- name : "gui-totop",
- props : {
- top : { type : Number, default : 0 },
- color : { type : String, default : "#008AFF" },
- bottom : { type : String, default : "80rpx" },
- right : { type : String, default : "30rpx" },
- background : { type : String, default : "#FFFFFF"},
- borderRadius : { type : String, default : "6rpx" },
- zIndex : { type : Number, default : 9},
- fontSize : { type : String, default : "44rpx" }
- },
- data() {
- return {
- show : false,
- timer : null
- }
- },
- watch:{
- top : function(topVal){
- if(this.timer != null){clearTimeout(this.timer);}
- this.timer = setTimeout(()=>{
- this.show = topVal > 100 ? true : false;
- }, 80);
- }
- },
- methods:{
- totop : function(){
- // #ifndef APP-NVUE
- uni.pageScrollTo({
- scrollTop:0,
- duration:100
- })
- // #endif
- this.$emit('totop');
- }
- }
- }
- </script>
- <style scoped>
- .gui-totop{width:80rpx; height:80rpx; position:fixed;}
- .gui-totop-text{width:80rpx; height:80rpx; line-height:80rpx; font-size:38rpx; text-align:center;}
- </style>
|