ion-avatar
Hình đại diện(Avatars) là các thành phần hình tròn thường bao bọc một hình ảnh hoặc biểu tượng. Chúng có thể được sử dụng để đại diện cho một người hoặc một đối tượng.
Hình đại diện(Avatars) có thể được sử dụng bởi chính chúng hoặc bên trong của bất kỳ phần tử nào. Nếu được đặt bên trong dấu ion-chip hoặc ion-item, hình đại diện sẽ thay đổi kích thước để phù hợp với thành phần chính. Để đặt hình đại diện ở bên trái hoặc bên phải của một mục, hãy đặt vị trí tương ứng thành start hoặc end.
Usage
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-chip>
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Chip Avatar</ion-label>
</ion-chip>
<ion-item>
<ion-avatar slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Item Avatar</ion-label>
</ion-item><ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-chip>
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Chip Avatar</ion-label>
</ion-chip>
<ion-item>
<ion-avatar slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Item Avatar</ion-label>
</ion-item>import React from 'react';
import { IonAvatar, IonChip, IonItem, IonLabel, IonContent } from '@ionic/react';
export const AvatarExample: React.FC = () => (
<IonContent>
<IonAvatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonAvatar>
<IonChip>
<IonAvatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonAvatar>
<IonLabel>Chip Avatar</IonLabel>
</IonChip>
<IonItem>
<IonAvatar slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonAvatar>
<IonLabel>Item Avatar</IonLabel>
</IonItem>
</IonContent>
);import { Component, h } from '@stencil/core';
@Component({
tag: 'avatar-example',
styleUrl: 'avatar-example.css'
})
export class AvatarExample {
render() {
return [
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y"/>
</ion-avatar>,
<ion-chip>
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y"/>
</ion-avatar>
<ion-label>Chip Avatar</ion-label>
</ion-chip>,
<ion-item>
<ion-avatar slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y"/>
</ion-avatar>
<ion-label>Item Avatar</ion-label>
</ion-item>
];
}
}<template>
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-chip>
<ion-avatar>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Chip Avatar</ion-label>
</ion-chip>
<ion-item>
<ion-avatar slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-avatar>
<ion-label>Item Avatar</ion-label>
</ion-item>
</template>
<script>
import { IonAvatar, IonChip, IonItem, IonLabel } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonAvatar, IonChip, IonItem, IonLabel }
});
</script>CSS Custom Properties
| Name | Description |
|---|---|
--border-radius | Border radius of the avatar and inner image |
ion-img
Img là thẻ sẽ tải hình ảnh khi thẻ đó ở trong chế độ xem. Điều này cực kỳ hữu ích khi tạo một danh sách lớn vì hình ảnh chỉ được tải khi chúng hiển thị. Thành phần sử dụng Intersection Observer nội bộ, được hỗ trợ trong hầu hết các trình duyệt hiện đại, nhưng lại rơi vào trường hợp setTimeout không được hỗ trợ.
Usage
<ion-list>
<ion-item *ngFor="let item of items">
<ion-thumbnail slot="start">
<ion-img [src]="item.src"></ion-img>
</ion-thumbnail>
<ion-label>{{item.text}}</ion-label>
</ion-item>
</ion-list>import React from 'react';
import { IonList, IonItem, IonThumbnail, IonImg, IonLabel, IonContent } from '@ionic/react';
type Item = {
src: string;
text: string;
};
const items: Item[] = [{ src: 'http://placekitten.com/g/200/300', text: 'a picture of a cat' }];
export const ImgExample: React.FC = () => (
<IonContent>
<IonList>
{items.map((image, i) => (
<IonItem key={i}>
<IonThumbnail slot="start">
<IonImg src={image.src} />
</IonThumbnail>
<IonLabel>{image.text}</IonLabel>
</IonItem>
))}
</IonList>
</IonContent>
);import { Component, h } from '@stencil/core';
@Component({
tag: 'img-example',
styleUrl: 'img-example.css'
})
export class ImgExample {
private items = [{
'text': 'Item 1',
'src': '/path/to/external/file.png'
}, {
'text': 'Item 2',
'src': '/path/to/external/file.png'
}, {
'text': 'Item 3',
'src': '/path/to/external/file.png'
}];
render() {
return [
<ion-list>
{this.items.map(item =>
<ion-item>
<ion-thumbnail slot="start">
<ion-img src={item.src}></ion-img>
</ion-thumbnail>
<ion-label>{item.text}</ion-label>
</ion-item>
)}
</ion-list>
];
}
}<template>
<ion-list>
<ion-item v-for="item in items" :key="item.src">
<ion-thumbnail slot="start">
<ion-img :src="item.src"></ion-img>
</ion-thumbnail>
<ion-label>{{item.text}}</ion-label>
</ion-item>
</ion-list>
</template>
<script>
import { IonImg, IonItem, IonLabel, IonList, IonThumbnail } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonImg, IonItem, IonLabel, IonList, IonThumbnail },
setup() {
const items = [{
'text': 'Item 1',
'src': '/path/to/external/file.png'
}, {
'text': 'Item 2',
'src': '/path/to/external/file.png'
}, {
'text': 'Item 3',
'src': '/path/to/external/file.png'
}];
return { items }
}
});
</script>Properties
alt | |
|---|---|
| Description | Thuộc tính này xác định văn bản thay thế mô tả hình ảnh. Người dùng sẽ thấy văn bản này được hiển thị nếu URL hình ảnh sai, hình ảnh không ở một trong các định dạng được hỗ trợ hoặc nếu hình ảnh chưa được tải xuống. |
| Attribute | alt |
| Type | string | undefined |
src | |
| Description | URL hình ảnh. Thuộc tính này là bắt buộc đối với |
| Attribute | src |
| Type | string | undefined |
Events
| Name | Description |
|---|---|
ionError | Được phát ra khi img không tải được |
ionImgDidLoad | Phát ra khi hình ảnh tải xong |
ionImgWillLoad | Được phát ra khi img src đã được đặt |
CSS Shadow Parts
| Name | Description |
|---|---|
image | Phần tử `img` bên trong. |
ion-thumbnail
Hình thu nhỏ(Thumbnails) là các thành phần hình vuông thường bao bọc một hình ảnh hoặc biểu tượng. Chúng có thể được sử dụng để giúp hiển thị một nhóm hình ảnh lớn hơn dễ dàng hơn hoặc cung cấp bản xem trước của hình ảnh kích thước đầy đủ.
Hình thu nhỏ(Thumbnails) có thể được sử dụng bởi chính chúng hoặc bên trong bất kỳ phần tử nào. Nếu được đặt bên trong một ion-item, hình thu nhỏ sẽ thay đổi kích thước để vừa với thành phần chính. Để định vị hình thu nhỏ ở bên trái hoặc bên phải của một mục, hãy đặt vị trí tương ứng thành start hoặc end.
Usage
<ion-thumbnail>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-item>
<ion-thumbnail slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-label>Item Thumbnail</ion-label>
</ion-item><ion-thumbnail>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-item>
<ion-thumbnail slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-label>Item Thumbnail</ion-label>
</ion-item>import React from 'react';
import { IonThumbnail, IonItem, IonLabel, IonContent } from '@ionic/react';
export const ThumbnailExample: React.FC = () => (
<IonContent>
<IonThumbnail>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonThumbnail>
<IonItem>
<IonThumbnail slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y" />
</IonThumbnail>
<IonLabel>Item Thumbnail</IonLabel>
</IonItem>
</IonContent>
);import { Component, h } from '@stencil/core';
@Component({
tag: 'thumbnail-example',
styleUrl: 'thumbnail-example.css'
})
export class ThumbnailExample {
render() {
return [
<ion-thumbnail>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y"/>
</ion-thumbnail>,
<ion-item>
<ion-thumbnail slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y"/>
</ion-thumbnail>
<ion-label>Item Thumbnail</ion-label>
</ion-item>
];
}
}<template>
<ion-thumbnail>
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-item>
<ion-thumbnail slot="start">
<img src="https://gravatar.com/avatar/dba6bae8c566f9d4041fb9cd9ada7741?d=identicon&f=y">
</ion-thumbnail>
<ion-label>Item Thumbnail</ion-label>
</ion-item>
</template>
<script>
import { IonItem, IonLabel, IonThumbnail } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonItem, IonLabel, IonThumbnail }
});
</script>CSS Custom Properties
| Name | Description |
|---|---|
--border-radius | Border radius of the thumbnail(Bán kính đường viền của hình thu nhỏ) |
--size | Size of the thumbnail(Kích thước của hình thu nhỏ) |

0 Nhận xét