百度智能小程序 圖片

2020-08-28 15:48 更新

image 圖片

解釋:圖片,支持 JPG、PNG、GIF、BMP、WEBP 等格式。image 組件默認(rèn)寬度 300px、高度 225px。

屬性說明

屬性名 類型 默認(rèn)值 必填 說明 最低版本

src

String

圖片資源地址

mode

String

scaleToFill

圖片裁剪、縮放的模式

webp

Boolean

false

iOS 系統(tǒng)默認(rèn)不解析 WEBP 格式,只支持網(wǎng)絡(luò)資源

3.180.1

lazy-load

Boolean

false

圖片懶加載,在圖片即將進入一定范圍(距離當(dāng)前屏 50px)時才開始進行加載。

image-menu-prevent

Boolean

false

阻止長按圖片時彈起默認(rèn)菜單(即將該屬性設(shè)置為 image-menu-prevent="true"image-menu-prevent),只在初始化時有效,不能動態(tài)變更;若不想阻止彈起默認(rèn)菜單,則不需要設(shè)置此屬性。注:長按菜單后的操作暫不支持 svg 格式。

3.170.1

preview

Boolean

點擊后是否預(yù)覽圖片。在不設(shè)置的情況下,若 image 未監(jiān)聽點擊事件且寬度大于 1/4 屏寬,則默認(rèn)開啟。

3.170.9

original-src

string

預(yù)覽時顯示的圖片地址

3.170.9

binderror

HandleEvent

當(dāng)錯誤發(fā)生時,發(fā)布到 AppService 的事件名,事件對象 event.detail = {errMsg: ‘something wrong’}

bindload

HandleEvent

當(dāng)圖片載入完畢時,發(fā)布到 AppService 的事件名,事件對象 event.detail = {height:‘圖片高度 px’, width:‘圖片寬度 px’}

mode 有效值

有 13 種模式,其中 4 種是縮放模式,9 種是裁剪模式。

模式 說明

縮放

scaleToFill

不保持縱橫比縮放圖片,使圖片的寬高完全拉伸至填滿 image 元素

縮放

aspectFit

保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來。也就是說,可以完整地將圖片顯示出來。

縮放

aspectFill

保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來。也就是說,圖片通常只在水平或垂直方向是完整的,另一個方向?qū)l(fā)生截取。

縮放

widthFix

寬度不變,高度自動變化,保持原圖寬高比不變

裁剪

top

不縮放圖片,只顯示圖片的頂部區(qū)域

裁剪

bottom

不縮放圖片,只顯示圖片的底部區(qū)域

裁剪

center

不縮放圖片,只顯示圖片的中間區(qū)域

裁剪

left

不縮放圖片,只顯示圖片的左邊區(qū)域

裁剪

right

不縮放圖片,只顯示圖片的右邊區(qū)域

裁剪

top left

不縮放圖片,只顯示圖片的左上區(qū)域

裁剪

top right

不縮放圖片,只顯示圖片的右上區(qū)域

裁剪

bottom left

不縮放圖片,只顯示圖片的左下區(qū)域

裁剪

bottom right

不縮放圖片,只顯示圖片的右下區(qū)域

示例 

在開發(fā)者工具中打開


代碼示例 1: 自定義縮放模式

<view class="wrap">
    <view class="card-area" s-for="{{scaleArray}}">
        <image
            class="image-area {{item.hasBackgroud == 1 ? 'backGround': ''}}"
            data-name="{{item.mode}}"
            bindtap="onTap"
            mode="{{item.mode}}"
            src="{{src}}"
            binderror="imageError"
            bindload="imageLoad" />
        <view class="bottom-description">{{item.text}}</view>
    </view>
</view>
Page({
    data: {
        scaleArray: [{
            mode: 'scaleToFill',
            text: 'scaleToFill:不保持縱橫比縮放圖片,使圖片完全適應(yīng)'
        }, {
            mode: 'aspectFit',
            text: 'aspectFit:保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來',
            hasBackgroud: 1
        }, {
            mode: 'aspectFill',
            text: 'aspectFill:保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來'
        }, {
            mode: 'widthFix',
            text: 'widthFix:寬度不變,高度自動變化,保持原圖寬高比不變'
        }],
        src: 'https://b.bdstatic.com/miniapp/images/demo-dog.png'
    },
    imageError(e) {
      console.log('image 發(fā)生 error 事件,攜帶值為', e.detail.errMsg);
    },
    onTap(e) {
      console.log('image 發(fā)生 tap 事件', e);
    },
    imageLoad(e) {
        console.log('image 加載成功', e.type);
    }
});

代碼示例 2: 不縮放圖片,自定義裁切模式

<view class="wrap">
    <view class="card-area" s-for="{{cutArray}}">
        <image
            class="image-area"
            data-name="{{item.mode}}"
            bindtap="onTap"
            lazy-load="true"
            image-menu-prevent="true"
            mode="{{item.mode}}"
            src="{{src}}"
            binderror="imageError"
            bindload="imageLoad" />
        <view class="bottom-description">{{item.text}}</view>
    </view>
</view>
Page({
    data: {
        cutArray: [{
            mode: 'top',
            text: 'top:不縮放圖片,只顯示圖片的頂部區(qū)域'
        }, {
            mode: 'bottom',
            text: 'bottom:不縮放圖片,只顯示圖片的底部區(qū)域'
        }, {
            mode: 'center',
            text: 'center:不縮放圖片,只顯示圖片的中間區(qū)域'
        }, {
            mode: 'left',
            text: 'left:不縮放圖片,只顯示圖片的左邊區(qū)域'
        }, {
            mode: 'right',
            text: 'right:不縮放圖片,只顯示圖片的右邊邊區(qū)域'
        }, {
            mode: 'top left',
            text: 'top left:不縮放圖片,只顯示圖片的左上邊區(qū)域'
        }, {
            mode: 'top right',
            text: 'top right:不縮放圖片,只顯示圖片的右上邊區(qū)域'
        }, {
            mode: 'bottom left',
            text: 'bottom left:不縮放圖片,只顯示圖片的左下邊區(qū)域'
        }, {
            mode: 'bottom right',
            text: 'bottom right:不縮放圖片,只顯示圖片的右下邊區(qū)域'
        }],
        src: 'https://b.bdstatic.com/miniapp/images/demo-dog.png'
    },
    imageError(e) {
        console.log('image 發(fā)生 error 事件,攜帶值為', e.detail.errMsg);
    },
    onTap(e) {
        console.log('image 發(fā)生 tap 事件', e);
    },
    imageLoad(e) {
        console.log('image 加載成功', e.type);
    }
});

代碼示例 3 - iOS 可支持 webp

<image src='https://b.bdstatic.com/searchbox/icms/searchbox/images/demo.webp' webp/>

Bug & Tip

  • Tip:支持設(shè)置 CSS background-position 屬性,但是不推薦使用,會影響對應(yīng) mode 類型的展示。
  • Tip:image 組件默認(rèn)寬度 300px、高度 225px。
  • Tip:未顯示設(shè)置 preview 的圖片會進行點擊默認(rèn)預(yù)覽判斷,建議顯示設(shè)置 preview。
  • Tip:點擊預(yù)覽功能 IOS 端目前不支持本地圖片預(yù)覽,可以設(shè)置 original-src 為遠(yuǎn)程圖片地
  • Tip:webp 屬性只針對 iOS 端,支持網(wǎng)絡(luò)資源的 WEBP 格式的圖片。

參考示例

參考示例 1: 可放動圖 

在開發(fā)者工具中打開

<image src="https://b.bdstatic.com/miniapp/images/radio.gif" rel="external nofollow"  />

錯誤碼

代碼示例 3 - iOS 可支持 webp


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號