国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ WeChat アプレット ミニプログラム開発 小さなプログラムで切り詰められたウォーターフォール フロー コンポーネントを?qū)g裝する方法について話しましょう

小さなプログラムで切り詰められたウォーターフォール フロー コンポーネントを?qū)g裝する方法について話しましょう

Jan 24, 2022 am 10:32 AM
アプレット WeChat アプレット

切り詰められたウォーターフォール フロー コンポーネントをミニ プログラムに実裝するにはどうすればよいですか?以下の記事では、ウォーターフォールフローの要素をカットできるWeChatアプレットの実裝方法を紹介しますので、ご參考になれば幸いです。

小さなプログラムで切り詰められたウォーターフォール フロー コンポーネントを?qū)g裝する方法について話しましょう

ウォーターフォールフローは一般的なレイアウト手法ですが、直接2列に分割し、左側(cè)の要素の追加を制御するなど、実裝方法はさまざまです。と右側(cè)の列; 絶対配置によって両側(cè)を配置する別の方法もあります。 [関連する學(xué)習(xí)の推奨事項(xiàng): 小さなプログラム開発チュートリアル ]

この記事で紹介するウォーターフォール フローは、従來のものとは異なります。これは、ウォーターフォール フローが途中で切れている場(chǎng)合があるためです。

小さなプログラムで切り詰められたウォーターフォール フロー コンポーネントを?qū)g裝する方法について話しましょう

##上記のレイアウトでは、無理に2列にレイアウトするのは適切ではないので、絶対配置でレイアウトしました。したがって、各要素の高さを取得する方法を見つけて、要素を行全體に配置するか、左側(cè)に配置するか、右側(cè)に配置するかを決定する必要があります。

まず、テンプレート部分の実裝を見てみましょう:

<view class="container"   style="max-width:90%">
	<view wx:for="{{list}}" wx:key="index" style="{{item.style}}" class="wrapper">
		<abstract item="{{item}}"/>
	</view>
</view>
<view wx:if="{{tmp}}" class="computed-zone">
	<view class="wrapper">
		<abstract item="{{tmp}}"/>
	</view>
</view>

テンプレートは比較的単純な

container コンテナで、配列をループし、多數(shù)のレンダリングを行います。 水平ラッパー コンテナー。

wrapper コンテナは、絶対的に配置されたラッピング要素です。 wrapper コンテナは、実際にレンダリングする必要があるコンポーネントを配置する必要があります。より柔軟にするために、 render this コンポーネントを仮想ノードとして設(shè)定し、コンポーネントを使用する際に実際にレンダリングするカスタムコンポーネントを指定できます。

wrapper 要素は絶対位置に配置されているため、container コンテナ全體の高さを手動(dòng)で維持する必要があります。

ここでの質(zhì)問は、內(nèi)部の要素の高さをどうやって取得するかということです。テンプレートの

computed-zone は、この問題を解決するためのものです。要素を配列に配置する前に、まず computed-zone で要素をレンダリングし、次に WXML API を使用して取得します要素の実際のレンダリング サイズ。これにより、この要素の実際にレンダリングされた幅と高さを知ることができます。

各要素のレンダリング サイズ情報(bào)を取得した後、要素が行全體を占めるか行の半分を占めるかを確認(rèn)する必要があります。要素が同じである場(chǎng)合、コンテナが同じ場(chǎng)合、この要素が行全體を埋めると判斷でき、ラッピング コンテナ

wrapper

を行全體の幅に設(shè)定する必要があります。
  • 1 の條件を満たさない場(chǎng)合は、左右の要素の高さの合計(jì)に基づいて、wrapper を左右に配置する必要があります。

  • 分析後、少し書く必要があるのは、wrapper のオフセットを計(jì)算し、それを左に配置するか右に配置するか、またはどちらに配置するかを決定することです。行全體を占めます。コア コードは次のように実裝されます:

    {
    	// 將 setData Promise 化,方便使用
    	$setData(data) {
    		return new Promise(resolve => {
    			this.setData(data, () => {
    				resolve();
    			});
    		});
    	},
    	// 獲取元素的渲染尺寸
    	getRect(item) {
    		return this.$setData({
    			tmp: item,
    		}).then(() => {
    			return new Promise((resolve, reject) => {
    				const query = this.createSelectorQuery(); // 注意要使用 this,不要再使用 wx 前綴了
    				query.select(&#39;.computed-zone .wrapper&#39;).boundingClientRect();
    				query.exec(ret => {
    					if (ret[0]) {
    						resolve(ret[0]);
    					} else {
    						reject(&#39;not found dom!&#39;);
    					}
    				});
    			});
    		});
    	},
    	// 添加元素,內(nèi)部使用
    	addItem(item) {
    		let tick = this.tick;
    		return this.getRect(item).then(rect => {
    			if (tick !== this.tick) {
    				return Promise.reject(&#39;tick&#39;);
    			}
    			const { margin } = this.data;
    			let { height, width } = rect;
    			const windowWidth = this.sysInfo.windowWidth;
    			let [ leftTotal, rightTotal ] = this.height; // leftTotal 左側(cè)欄高度,rightTotal 右側(cè)欄高度,
    			let marginPx = this.sysInfo.getPx(margin);
    			let style = &#39;&#39;;
    
    			if (Math.abs(width - windowWidth) < 3) {
    				// 占滿屏幕寬度
    				style = `left:0;top:${ Math.max(leftTotal, rightTotal) }px;width:100%;`;
    				leftTotal = rightTotal = Math.max(leftTotal + height, rightTotal + height);
    			} else if (rightTotal < leftTotal) {
    				// 放入右邊
    				style = `right:${ marginPx }px;top:${ rightTotal }px;`;
    				rightTotal += height;
    			} else {
    				// 放入左邊
    				style = `left:${ marginPx }px;top:${ leftTotal }px;`;
    				leftTotal += height;
    			}
    
    			const { list = [] } = this.data;
    			const targetKey = `list[${list.length}]`; // 利用直接操作數(shù)組下標(biāo)的方式來觸發(fā)數(shù)組修改,性能有很大提升
    			this.height = [leftTotal, rightTotal]; // 記錄最新的左右側(cè)高度
    			return this.$setData({
    				[targetKey]: {
    					data: item,
    					style,
    				},
    				height: Math.max(leftTotal, rightTotal),
    			});
    		});
    	},
    	// 實(shí)際添加元素使用,自建Promise隊(duì)列,保證順序一致
    	add(item) {
    		let pending = this.pending || Promise.resolve();
    		return this.pending = pending.then(() => {
    			return this.addItem(item);
    		}).catch(err => {
    			console.error(err);
    			this.pending = null;
    			throw err;
    		});
    	},
    	clear() {
    		this.tick = tick++;
    		this.height = [0, 0];
    		this.pending = null;
    		this.setData({
    			list: [],
    			height: 0,
    		});
    	},
    }
    このコンポーネントを使用する場(chǎng)合、配列を割り當(dāng)てて要素を直接レンダリングすることはできませんが、コンポーネント インスタンス メソッド add(item) を使用する必要があります。 )

    ちなみに、キューを?qū)g裝したので、直接ループ追加するだけです。ステータスが気になる場(chǎng)合は、最後の要素の追加操作が完了したかどうかだけを判斷してください。 この方法で実現(xiàn)されるウォーターフォール フローは比較的柔軟ですが、パフォーマンスの消費(fèi)は低くありません。要素の実際のレンダリング サイズを 1 つずつ取得する必要があります。ウィンドウのサイズ変更をサポートしたい場(chǎng)合は、 、消耗がひどいです。

    コードの詳細(xì)を確認(rèn)する必要がある學(xué)生のために、Github および

    WeChat コード スニペット

    に実際のデモを置きました。試す。

    上記のモデルに基づいて、実際に可視領(lǐng)域內(nèi)の要素のみをレンダリングするように最適化することができ、これによりウォーターフォール フローのパフォーマンスが大幅に向上します。時(shí)間のある學(xué)生が改善できることを願(yuàn)っています。気に入ってください~o ( ̄▽ ̄)dプログラミング関連の知識(shí)については、プログラミング ビデオをご覧ください。 !

    以上が小さなプログラムで切り詰められたウォーターフォール フロー コンポーネントを?qū)g裝する方法について話しましょうの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Xianyu WeChat ミニプログラムが正式に開始 Xianyu WeChat ミニプログラムが正式に開始 Feb 10, 2024 pm 10:39 PM

Xianyu の公式 WeChat ミニ プログラムが靜かに開始されました。ミニ プログラムでは、プライベート メッセージを投稿して購(gòu)入者/販売者とコミュニケーションしたり、個(gè)人情報(bào)や注文を表示したり、商品を検索したりすることができます。プログラム、見てみましょう。 Xianyu WeChat アプレットの名前は何ですか? 回答: Xianyu、アイドル取引、中古品販売、評(píng)価、リサイクル。 1. ミニ プログラムでは、アイドル メッセージの投稿、プライベート メッセージを介した購(gòu)入者/販売者とのコミュニケーション、個(gè)人情報(bào)と注文の表示、指定された商品の検索などができます。 2. ミニ プログラム ページには、ホームページ、近くに、アイドル投稿、メッセージ投稿、私の投稿 5つの機(jī)能; 3. 使用したい場(chǎng)合は、購(gòu)入する前に WeChat 支払いを有効にする必要があります。

WeChat ミニ プログラムにカードめくり効果を?qū)g裝する WeChat ミニ プログラムにカードめくり効果を?qū)g裝する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実裝 WeChat ミニ プログラムでは、カードめくり効果の実裝は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を?qū)g裝する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具體的なサンプル コードは次のとおりです: &lt;!--index.wxml- ->&l

WeChat ミニ プログラムに畫像フィルター効果を?qū)g裝する WeChat ミニ プログラムに畫像フィルター効果を?qū)g裝する Nov 21, 2023 pm 06:22 PM

WeChat ミニ プログラムでの畫像フィルター効果の実裝 ソーシャル メディア アプリケーションの人気に伴い、人々は寫真にフィルター効果を適用して、寫真の蕓術(shù)的効果や魅力を高めることがますます好まれています。畫像フィルター効果は WeChat ミニ プログラムにも実裝でき、より興味深く創(chuàng)造的な寫真編集機(jī)能をユーザーに提供します。この記事では、WeChat ミニ プログラムに畫像フィルター効果を?qū)g裝する方法を紹介し、具體的なコード例を示します。まず、WeChat アプレットのキャンバス コンポーネントを使用して畫像を読み込み、編集する必要があります。 Canvasコンポーネントはページ上で使用できます

WeChat アプレットにドロップダウン メニュー効果を?qū)g裝する WeChat アプレットにドロップダウン メニュー効果を?qū)g裝する Nov 21, 2023 pm 03:03 PM

WeChat ミニ プログラムでドロップダウン メニュー効果を?qū)g裝するには、特定のコード サンプルが必要です。モバイル インターネットの普及に伴い、WeChat ミニ プログラムはインターネット開発の重要な部分となり、ますます多くの人が注目し始めています。 WeChat ミニ プログラムを使用します。 WeChat ミニ プログラムの開発は、従來の APP 開発よりも簡(jiǎn)単かつ迅速ですが、特定の開発スキルを習(xí)得する必要もあります。 WeChat ミニ プログラムの開発では、ドロップダウン メニューが一般的な UI コンポーネントであり、より良いユーザー エクスペリエンスを?qū)g現(xiàn)します。この記事では、WeChat アプレットにドロップダウン メニュー効果を?qū)g裝し、実用的な機(jī)能を提供する方法を詳しく紹介します。

アリペイ、希少文字ライブラリを収集?補(bǔ)完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集?補(bǔ)完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の當(dāng)サイトのニュースによると、今年5月27日、アント?グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進(jìn)展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協(xié)會(huì)からコレクションを収集する レア文字は、レア文字ライブラリを補(bǔ)完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します?,F(xiàn)在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認(rèn)識(shí)?入力されなかった珍しい文字の畫像を送信し、確認(rèn)後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。當(dāng)サイトでは、発音が不明瞭な珍しい単語(yǔ)を?qū)澫螭趣筏孔钚陇螀g語(yǔ)分割入力方法をミニプログラムで體験できることに注目しました。ユーザー解體

Xianyu WeChat アプレットの名前は何ですか? Xianyu WeChat アプレットの名前は何ですか? Feb 27, 2024 pm 01:11 PM

Xianyu の公式 WeChat ミニ プログラムが靜かに開始され、アイドルアイテムを簡(jiǎn)単に公開および交換できる便利なプラットフォームをユーザーに提供します。ミニ プログラムでは、プライベート メッセージを介して購(gòu)入者または販売者とコミュニケーションしたり、個(gè)人情報(bào)や注文を表示したり、欲しい商品を検索したりできます。では、WeChat ミニ プログラムでは Xianyu とはいったい何と呼ばれているのでしょうか? このチュートリアル ガイドで詳しくご紹介しますので、知りたいユーザーは、この記事に従って読み続けてください。 Xianyu WeChat アプレットの名前は何ですか? 回答: Xianyu、アイドル取引、中古品販売、評(píng)価、リサイクル。 1. ミニ プログラムでは、アイドル メッセージの投稿、プライベート メッセージを介した購(gòu)入者/販売者とのコミュニケーション、個(gè)人情報(bào)と注文の表示、指定された商品の検索などができます。 2. ミニ プログラム ページには、ホームページ、近くに、アイドル投稿、メッセージ投稿、マイ投稿の5つの機(jī)能、3.

WeChatアプレットは畫像アップロード機(jī)能を?qū)g裝 WeChatアプレットは畫像アップロード機(jī)能を?qū)g裝 Nov 21, 2023 am 09:08 AM

WeChat アプレットが畫像アップロード機(jī)能を?qū)g裝 モバイル インターネットの発展に伴い、WeChat アプレットは人々の生活に欠かせないものになりました。 WeChat ミニ プログラムは、豊富なアプリケーション シナリオを提供するだけでなく、畫像アップロード機(jī)能などの開発者定義の機(jī)能もサポートします。この記事では、WeChat アプレットに畫像アップロード機(jī)能を?qū)g裝する方法と具體的なコード例を紹介します。 1. 準(zhǔn)備作業(yè) コードを書き始める前に、WeChat 開発者ツールをダウンロードしてインストールし、WeChat 開発者として登録する必要があります。同時(shí)に、WeChat についても理解する必要があります。

WeChat アプレットを使用してカルーセル切り替え効果を?qū)g現(xiàn)する WeChat アプレットを使用してカルーセル切り替え効果を?qū)g現(xiàn)する Nov 21, 2023 pm 05:59 PM

WeChat アプレットを使用してカルーセル スイッチング効果を?qū)g現(xiàn)する WeChat アプレットは、シンプルで効率的な開発と使用特性を備えた軽量のアプリケーションです。 WeChat ミニ プログラムでは、カルーセル スイッチング効果を?qū)g現(xiàn)することが一般的な要件です。この記事では、WeChat アプレットを使用してカルーセル切り替え効果を?qū)g現(xiàn)する方法と、具體的なコード例を紹介します。まず、カルーセル コンポーネントを WeChat アプレットのページ ファイルに追加します。たとえば、&lt;swiper&gt; タグを使用すると、カルーセルの切り替え効果を?qū)g現(xiàn)できます。このコンポーネントでは、 b を渡すことができます。

See all articles