検索
ホームページWeChat アプレットミニプログラム開発ミニ プログラム コンポーネント: チャット セッション コンポーネントの概要 (コード付き)

この記事の内容は、ミニ プログラム コンポーネントに関するものです。チャット セッション コンポーネントの概要 (コード付き) を必要とする友人が参考になれば幸いです。

シナリオ

オンラインカスタマーサービスのチャット会話などに使用します

1. 円をレイアウトします

1. 三角矢印

26rpx*26rpx の長方形を描画し、45 度回転して非表示にします半分、バブル上に直角三角形を形成します。

<!-- 画三角箭头 -->
 <view class="triangle" style="{{item.myself == 1 ? &#39;right: 140rpx; background: #7ECB4B&#39; : &#39;left: 140rpx;&#39;}}"></view>
 
/* 三角箭头 */
.body .triangle {
 background: white;
 width: 20rpx;
 height: 20rpx;
 margin-top: 26rpx;
 transform: rotate(45deg);
 position: absolute;
}

2. Flex-flow は、フローの方向を変更し、それぞれ ['row' | 'row-reverse'] を取り、相手が送信したメッセージのアバターが左側にくるようにします。自分が送ったメッセージのアバターが右側にあります。

<view class="body" style="flex-flow: {{item.myself == 0 ? &#39;row&#39; : &#39;row-reverse&#39;}}">

3. 押して話しかけると、フローティングレイヤーが水平方向と垂直方向に中央に配置されます

オプション1、JS手動計算

data: {
 hud_top: (wx.getSystemInfoSync().windowHeight - 150) / 2,
 hud_left: (wx.getSystemInfoSync().windowWidth - 150) / 2,
}
<view class="hud-container" wx:if="{{status != state.normal}}" style="top: {{hud_top}}px; left: {{hud_left}}px;">

オプション2、純粋なCSS

/*悬浮提示框*/
.hud-container {
 position: fixed;
 width: 150px;
 height: 150px;
 left: 50%;
 top: 50%;
 margin-left: -75px;
 margin-top: -75px;
}

比較後、オプション2の方がオプション1より優れています

JS句読点

1. タッチイベントを使用すると、上にスワイプして音声入力をキャンセルできます

押すと保留状態になり、一定の距離を超えて上にスワイプするとキャンセルプロンプトが表示されます。それを超えないように上にスワイプして、放して送信します。

touchStart: function (e) {
 // 触摸开始
 var startY = e.touches[0].clientY;
 // 记录初始Y值
 this.setData({
 startY: startY,
 status: this.data.state.pressed
 });
 },
 touchMove: function (e) {
 // 触摸移动
 var movedY = e.touches[0].clientY;
 var distance = this.data.startY - movedY;
 // console.log(distance);
 // 距离超过50,取消发送
 this.setData({
 status: distance > 50 ? this.data.state.cancel : this.data.state.pressed
 });
 },
 touchEnd: function (e) {
 // 触摸结束
 var endY = e.changedTouches[0].clientY;
 var distance = this.data.startY - endY;
 // console.log(distance);
 // 距离超过50,取消发送
 this.setData({
 cancel: distance > 50 ? true : false,
 status: this.data.state.normal
 });
 // 不论如何,都结束录音
 this.stop();
 },

2. メッセージを送信した後、ページの最後までスクロールします

data: {
 toView: &#39;&#39;
}
reply: {
// ...
this.scrollToBottom()
},
scrollToBottom: function () {
 this.setData({
 toView: &#39;row_&#39; + (this.data.message_list.length - 1)
 });
 },
<!--每一行消息条-->
<view class="row" wx:for="{{message_list}}" wx:key="" id="row_{{index}}">

関連する推奨事項:

ミニ プログラムとバックグラウンドの間のインタラクションの実装 (コード付き)

ミニ プログラムの自動読み込み用の完全なコード

以上がミニ プログラム コンポーネント: チャット セッション コンポーネントの概要 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)