スライダー効果を実装するミニプログラム

スライダー効果を実装するミニプログラム

この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

コピーするときは、js ロジックのリスト データを必ず変更してください。

アプレットの CSS スタイル

。箱 {
    幅:100vw;
    背景: #F2F2F2;
    遷移: すべて 3;
}

.box-b {
    高さ: 8vh;
    幅: 100%;
    ディスプレイ: フレックス;
    コンテンツの両端揃え: スペースの間;
    背景色: #FAFAFA;
    アイテムの位置を中央揃えにします。
    パディング: 0 30rpx;
    ボックスのサイズ: 境界線ボックス;
}

.box-r1 {
    フォントサイズ: 24rpx;
    色: 赤;
}

.box-r2 {
    フォントサイズ: 28rpx;
    パディング: 20rpx 50rpx;
    境界線の半径: 50rpx;
    色: #fff;
    背景色: #FF6C3B;
}

.box-t {
    高さ:92vh;
    オーバーフロー-y: 自動;
    オーバーフロー-x:非表示;
    パディング: 0 25rpx;
}

.ボックストップ{
    幅:90vw;
    高さ:22vw;
    上マージン: 20rpx;
    ディスプレイ: フレックス;
    flex-direction: 列;
    コンテンツの両端揃え: スペースを空ける;
}

.ボックス{
    幅:105vw;
    高さ:20vw;
    上マージン: 20rpx;
    ディスプレイ: フレックス;
    flex-direction: 行;
    コンテンツの両端揃え: スペースを空ける;
}

.ボックス-1 {
    幅:100vw;
    高さ:20vw;
    背景: 白;
    ディスプレイ: フレックス;
    flex-direction: 行;
    コンテンツの両端揃え: スペースを空ける;
    パディング: 10rpx 0;
    境界線の半径: 10px;
    左マージン: 20px;
}

.boxs-1 > ビュー:最初の子 {
    幅: 10vw;
    行の高さ: 18vw;
    テキスト配置: 中央;
    /* 背景: #ccc; */
    高さ:20vw;
}

.boxs-1 > ビュー:n番目の子(2) {
    幅: 20vw;
    /* 背景: #ccc; */
    高さ: 100%;
    境界線の半径: 20rpx;
}

画像 {
    幅: 100%;
    高さ: 100%;
    境界線の半径: 20rpx;
}

.boxs-1 > ビュー:最後の子 {
    幅:60vw;
    /* 背景: #ccc; */
    高さ: 100%;
    ディスプレイ: フレックス;
    flex-direction: 列;
    コンテンツの両端揃え: スペースを空ける;
}
.boxs-1 > ビュー:最後の子>ビュー{
    ディスプレイ: フレックス;
    flex-direction: 行;
    コンテンツの両端揃え: スペースを空ける;
    位置: 相対的;
    左: 30rpx;
}
文章 {
    幅:60vw;
    オーバーフロー: 非表示;
    テキストオーバーフロー: 省略記号;
    空白: ラップなし;
}

.ボックス-2 {
    幅: 120rpx;
    高さ: 170rpx;
    テキスト配置: 中央;
    行の高さ: 170rpx;
    背景: #e64340;
    フォントサイズ: 24rpx;
    色: #fff;
    右上の境界線の半径: 10px;
    右下の境界線の半径: 10px;
}
.red_cart{
    色: 赤;
    位置: 相対的;
    右: 40px;
}

wxml スタイルのアプレット

<ビュークラス="ボックス">
    <ビュークラス="box-t">
        <移動可能領域 class="box-top" wx:for="{{list}}" wx:key="index">
            <movable-view class="boxes"
                          方向="水平"
                          アニメーション="{{true}}"
                          慣性="true"
                          範囲外="false"
            >
                <view class="boxs-1">
                    <表示>
                        <チェックボックスがチェックされています="{{selected}}" wx:key="index" bindtap="chec" data-selected="{{item}}"></チェックボックス>
                    </ビュー>
                    <表示>
                        <画像 src="{{item.pic}}"></画像>
                    </ビュー>
                    <view class="cart_list">
                        <テキスト>{{アイテム名}}</テキスト>
                        <表示>
                            <view class="red_cart">¥{{item.price}}</view>
                            <表示>
                                <van-stepper class="cart_vant"
                                        値="{{ アイテム番号 }}"
                                        bind:change="onChange" データキー="{{item.key}}"/>
                            </ビュー>
                        </ビュー>
                    </ビュー>
                </ビュー>
                <view class="boxs-2" bindtap="del" data-key="{{item.key}}">削除</view>
            </可動ビュー>
        </可動領域>
    </ビュー>
    <ビュークラス="box-b">
        <view class="box-r1">合計金額: ¥{{price}}</view>
        <view class="box-r2">チェックアウトへ進む</view>
    </ビュー>
</ビュー>

ミニプログラム js

// ページ/セールス/セールス.js
させて {
    ゲットショップ、
    取得削除、
    数値の変更、
    選択されたもの
} = require('../../http/api')
ページ({
    onShareAppMessage() {
        戻る {
            タイトル: 'movable-view',
            パス: 'page/component/pages/movable-view/movable-view'
        }
    },

    データ: {
        x: 0,
        スケール: 2,
        list: [], //price: 0, を使用してリストデータテストを定義できるようになりました。
        選択: []
    },
    削除(e) {
        console.log(e.currentTarget.dataset.key)
        var キー = e.currentTarget.dataset.key
        var トークン = wx.getStorageSync('トークン')
        getRemove(トークン、キー)。その後(res => {
            // コンソール.log(res)
        })
        この.getShop()
    },
    onChange(e) {
        console.log(e.currentTarget.dataset.key)
        コンソールログ(e.detail)
        var トークン = wx.getStorageSync('トークン')
        var キー = e.currentTarget.dataset.key
        var 番号 = e.detail
        トークン、キー、数値を変更します。その後、res => {
            // コンソール.log(res)
        })
        この.getShop()
    },
    タップ(){
        this.setData({
            x: 0,
        })
    },
    getShop() {
        getShop().then(res => {
            this.setData({
                リスト: res.items
            })
        })
    },
    チェック(e) {
        この.getShop()
    },
    onLoad: 関数 (オプション) {
        getShop().then(res => {
            this.setData({
                リスト: res.items
            })
            this.data.list.forEach(i => {
                var トークン = wx.getStorageSync('トークン')
                var キー = i.key
                var 選択 = i.選択
                this.setData({
                    選択済み: 選択済み
                })
                getSelected(トークン、キー、選択された)。その後(res => {
                    this.setData({
                        価格: res.data.price
                    })
                })
            })


        })

    },
    onShow: 関数() {
        この.getShop()
        wx.getStorageSync('トークン')の場合{
            wx.hideLoading()
        } それ以外 {
            wx.showLoading({
                タイトル: 「ログインしてください」
            })
        }
    },


    /**
     * ライフサイクル機能 - ページの非表示を監視する*/
    onHide: 関数 () {

    },

    /**
     * ライフサイクル機能 - ページのアンインストールを監視する*/
    onUnload: 関数 () {

    },


    onReady: 関数 () {

    },
    /**
     * ページ関連のイベント処理関数 - ユーザーのプルダウンアクションをリッスンする */
    onPullDownRefresh: 関数 () {

    },

    /**
     * ページ上のボトムイベントを処理する関数*/
    onReachBottom: 関数 () {

    },

    /**
     * ユーザーは右上隅をクリックして共有します*/
})

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットの2つのスライドモード(水平スライド、垂直スライド)の詳細とサンプルコード
  • WeChat アプレットのスクロールビュー実装アンカースライドの例
  • WeChatアプレット画像水平スライド左右の例
  • WeChatアプレットは左右にスワイプしてページを切り替える詳細な説明とサンプルコード
  • WeChat アプレット サイドバーのスライド効果 (左右にスライド)
  • WeChatアプレットページスライドイベントの詳細な例
  • WeChatアプレットの左右スライド実装コード
  • WeChatアプレットに左スワイプ削除機能を実装
  • WeChatアプレットはスクロールビュータグを使用して、自動的に下へスライドする機能のサンプルコードを実現します。
  • WeChatアプレットは、スライドジェスチャーでページを切り替える

<<:  MySQLデータファイルの保存場所を表示する方法

>>:  VMWare で Ubuntu を再起動した後、インターネットにアクセスできなくなる問題の解決方法

推薦する

カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード

この記事では、カスタムポップアップボックスを実装するためのJavaScriptシングルトンモードの具...

Linux での MongoDB のインストールに関するチュートリアル

MongoDB はクロスプラットフォームであり、Windows と Linux の両方にインストール...

トランザクションとロックを表示するための MySQL の一般的なステートメント

データベース内のトランザクションとロックを表示するための一般的なステートメントトランザクションの待機...

デュアル VIP を使用した高可用性 MySQL クラスタの構築

目次1. プロジェクトの説明: 2. プロジェクト環境: 2. プロジェクトの手順: 3. プロジェ...

SVN のインストールと基本操作 (グラフィック チュートリアル)

目次1. SVNとは何か2. SVNサーバーとクライアントの取得方法3. SVN ワークフローとアー...

Web ページのデザインを学ぶときに習得すべきコードは何ですか?

この記事では、Web ページ制作を学ぶ過程で習得すべきテクニックの一部を詳しく紹介します。これらの内...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...

メモリの原則に関する詳細な説明: JS では変数はヒープに保存されるのか、スタックに保存されるのか?

目次1. 冷蔵庫に入りきらない象2. シャドウクローン文字列3. 実際に見た「奇妙なボール」 4. ...

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...

生年月日を年齢に変換し、グループ化して人数を数えるMySQLの例

データベースのクエリ `学生`から*を選択 クエリ結果id名前誕生日1張三1970-10-01 2李...

初心者がHTMLタグを学ぶ(2)

関連記事:初心者が学ぶ HTML タグ (1)初心者は、いくつかの HTML タグを理解することで ...

Django は Pillow を使用して検証コード機能を簡単に設定します (Python)

1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

WeChatアプレットはシンプルなチャットルームを実装します

この記事では、WeChatアプレットの具体的なコードを共有し、簡単なチャットルームを実装します。具体...