微信小程序之网易云音乐(二)- uni-app标签的使用

微信小程序之网易云音乐导航

前言

第一篇文章先学习uni-app的基本使用,这篇文章则学习其标签(简单的就不介绍了,官网案例很不错)的基本用法,下一篇文章才是真正的开始编写网易云音乐小程序。

一. 标签

1.1 scroll-view标签

scroll-view标签:可滚动视图区域。用于区域滚动。

<template>
	<view>
		<scroll-view scroll-y="true" style="height: 100px;" scroll-top="30px">
			<view style="background: red; width: 100px; height: 100px;"></view>
			<view style="background: yellow; width: 100px; height: 100px;"></view>
			<view style="background: blue; width: 100px; height: 100px;"></view>
			<view style="background: orange; width: 100px; height: 100px;"></view>
		</scroll-view>
		<view>----------</view>
		<scroll-view scroll-x="true" style="display: flex; white-space: nowrap;">
			<view style="background: red; width: 320px; height: 100px; display: inline-block;"></view>
			<view style="background: yellow; width: 320px; height: 100px; display: inline-block;"></view>
			<view style="background: blue; width: 320px; height: 100px; display: inline-block;"></view>
			<view style="background: orange; width: 320px; height: 100px; display: inline-block;"></view>
		</scroll-view>
	</view>
</template>

效果如下:(scroll-top指的是竖向滚动条初始位置,其他属性可参考官网
在这里插入图片描述


1.2 swiper标签

swiper标签滑块视图容器。一般用于左右滑动或上下滑动,比如banner轮播图。

案例:

<template>
	<view>
		<swiper :indicator-dots="true" :autoplay="true" :interval="2000" :duration="1000" circular="true">
			<!-- <swiper-item>
				<view class="swiper-item1">A</view>
			</swiper-item>
			<swiper-item>
				<view class="swiper-item2">B</view>
			</swiper-item>
			<swiper-item>
				<view class="swiper-item3">C</view>
			</swiper-item> -->
			
			<!-- 循环写法 -->
			<swiper-item v-for="item in list" :key="item.id">
				<image :src="item.picUrl"></image>
			</swiper-item>

		</swiper>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				list: [{
						id: 1,
						picUrl: 'http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1707077.jpg'
					},
					{
						id: 1,
						picUrl: 'http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1707559.jpg'
					},
					{
						id: 1,
						picUrl: 'http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1707181.jpg'
					},
				]
			}
		}
	}
</script>
<style>
	.swiper-item1 {
		height: 200px;
		width: 100%;
		background: red;
	}

	.swiper-item2 {
		height: 200px;
		width: 100%;
		background: blue;
	}

	.swiper-item3 {
		height: 200px;
		width: 100%;
		background: yellow;
	}
</style>

页面效果如下:
在这里插入图片描述
相关参数如下(其他的可以参考官网):

  • indicator-dots:是否显示面板指示点。
  • autoplay:是否自动切换。
  • interval:自动切换时间间隔。
  • duration:滑动动画时长。
  • circular:是否采用衔接滑动,即播放到末尾后重新回到开头。

1.3 icon标签

<template>
	<view>
		<view v-for="(value,index) in iconType" :key="index">
			<icon :type="value" size="26" />
			<text>{{value}}</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				iconType: ['success']
			}
		},
		onLoad() {
			// #ifdef APP-PLUS|| MP-WEIXIN
			this.iconType = ['success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel', 'download', 'search',
				'clear'
			]
			// #endif

			// #ifdef MP-ALIPAY
			this.iconType = ['info', 'warn', 'waiting', 'cancel', 'download', 'search', 'clear', 'success',
				'success_no_circle', 'loading'
			]
			// #endif

			// #ifdef MP-BAIDU
			this.iconType = ['success', 'info', 'warn', 'waiting', 'success_no_circle', 'clear', 'search', 'personal',
				'setting', 'top', 'close', 'cancel', 'download', 'checkboxSelected', 'radioSelected', 'radioUnselect'
			]
			// #endif
		}
	}
</script>
<style>
	.swiper-item1 {
		height: 200px;
		width: 100%;
		background: red;
	}

	.swiper-item2 {
		height: 200px;
		width: 100%;
		background: blue;
	}

	.swiper-item3 {
		height: 200px;
		width: 100%;
		background: yellow;
	}
</style>

效果如下:
在这里插入图片描述

平台type 有效值
App、H5、微信小程序、QQ小程序success, success_no_circle, info, warn, waiting, cancel, download, search, clear
支付宝小程序info, warn, waiting, cancel, download, search, clear, success, success_no_circle,loading
百度小程序success, info, warn, waiting, success_no_circle, clear, search, personal, setting, top, close, cancel, download, checkboxSelected, radioSelected, radioUnselect

1.4 progress标签

progress顾名思义是进度条的意思:

案例:

<template>
	<view>
		<view>
			<view >
				<view class="progress-box"><progress percent="20" show-info stroke-width="5" /></view>
				<view class="progress-box"><progress percent="40" stroke-width="3" active /></view>
				<view class="progress-box"><progress percent="60" active stroke-width="5"  backgroundColor="#FF0000"/></view>
				<view class="progress-box"><progress percent="80" show-info stroke-width="5" activeColor="red"/></view>
			</view>
		</view>
	</view>
</template>

<style>
	.progress-box{
		margin-top: 20px;
	}
</style>

效果如下:
在这里插入图片描述
相关参数如下(官网):

  • percent:百分比0~100。
  • show-info:在进度条右侧显示百分比。
  • stroke-width:进度条线的宽度,单位px。
  • active:进度条从左往右的动画。
  • backgroundColor:未选择的进度条的颜色。
  • activeColor:已选择的进度条的颜色。

1.5 slider标签

slider是滑动选择器。

<view class="uni-padding-wrap uni-common-mt">
    <view class="uni-title">设置step</view>
        <view>
            <slider value="60" @change="sliderChange" step="5" />
        </view>

        <view class="uni-title">显示当前value</view>
        <view>
            <slider value="50" @change="sliderChange" show-value />
        </view>

        <view class="uni-title">设置最小/最大值</view>
        <view>
            <slider value="100" @change="sliderChange" min="50" max="200" show-value />
        </view>

        <view class="uni-title">不同颜色和大小的滑块</view>
        <view>
            <slider value="50" @change="sliderChange" activeColor="#FFCC33" backgroundColor="#000000" block-color="#8A6DE9" block-size="20" />
        </view>
    </view>
</view>

页面效果:
在这里插入图片描述
相关属性说明:

  • value:当前取值。
  • step:步长,取值必须大于 0,并且可被(max - min)整除。
  • show-value:是否显示当前 value。
  • minmax:最小值和最大值。
  • activeColor:滑块左侧已选择部分的线条颜色。
  • backgroundColor:滑块右侧背景条的颜色。
  • block-color:滑块的颜色。
  • block-size:滑块的大小,取值范围为 12 - 28。

1.6 audio标签

audio音频标签。

<template>
	<view>
		<view>
			<view class="page-body">
				<view class="page-section page-section-gap" style="text-align: center;">
					<audio style="text-align: left" :src="current.src" :poster="current.poster" :name="current.name"
						:author="current.author" :action="audioAction" controls></audio>
				</view>
			</view>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				current: {
					poster: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/7fbf26a0-4f4a-11eb-b680-7980c8a877b8.png',
					name: '致爱丽丝',
					author: '粽',
					src: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',
				},
				audioAction: {
					method: 'pause'
				}
			}
		},
		// onLoad(){
		// 	const audio =uni.createInnerAudioContext()
		// 	audio.autoplay=true// 自动播放
		// 	audio.src='https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3'
		// 	audio.onPlay(function(){
		// 		console.log('开始播放!')
		// 	})
		// }
	}
</script>

效果如下:
在这里插入图片描述
相关参数:

  • src:要播放音频的资源地址。
  • loop:是否循环播放。
  • poster:默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效。
  • name:默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效。
  • author:默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效。

1.7 map标签

map是地图组件:

<template>
	<view>
		<view class="page-body">
			<view class="page-section page-section-gap">
				<map style="width: 100%; height: 300px;" :latitude="latitude" :longitude="longitude" :markers="covers">
				</map>
			</view>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				id: 0, // 使用 marker点击事件 需要填写id
				title: 'map',
				latitude: 39.909,
				longitude: 116.39742,
				covers: [{
					latitude: 39.909,
					longitude: 116.39742,
					iconPath: '../../../static/location.png'
				}, {
					latitude: 39.90,
					longitude: 116.39,
					iconPath: '../../../static/location.png'
				}]
			}
		},
	}
</script>

效果如下:
在这里插入图片描述

二. flex弹性布局

2.1 传统布局和flex弹性布局

<template>
	<view>
		<view class="father">
			<view class="son"></view>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {

			}
		},
	}
</script>
<style>
	.father {
		height: 200px;
		width: 200px;
		border: 1px solid red;
		position: relative;
	}

	.son {
		height: 50px;
		width: 50px;
		background: #007AFF;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}
</style>

效果如下:
在这里插入图片描述
Flex布局:弹性布局,任何一个容器都可以指定为Fllex布局。那么上述代码改为:

.father {
		height: 200px;
		width: 200px;
		border: 1px solid red;
		// 只需要以下3行代码即可
		display: flex;
		justify-content: center;
		align-items: center;
	}
.son {
	height: 50px;
	width: 50px;
	background: #007AFF;
}
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zong_0915

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值