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

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

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

コピーするときは、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 を再起動した後、インターネットにアクセスできなくなる問題の解決方法

推薦する

Vue マルチページ構成の詳細

目次1. 複数ページの違い2. SPAとMPA 3. Vue Cli スキャフォールディング構成1....

HTML テーブルタグについての簡単な説明

主にその構造といくつかの重要な特性について説明します。少しずつ改善しながら紹介していきます。 1) ...

Linux カーネル デバイス ドライバー システム コールに関する注意事項

/**************************** * システムコール**********...

MySQLのロックについて理解しておくべきこと

1. はじめにMySQL ロックは、その範囲に応じて、グローバル ロック、テーブル ロック、行ロック...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

HTML知識ポイントの実践経験のまとめ

1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...

Vue-cliフレームワークはタイマーアプリケーションを実装します

技術的背景このアプリケーションは vue-cli フレームワークを使用し、カスタム コンポーネント ...

mysql5.7.21.zip インストールチュートリアル

mysql5.7.21 zipの詳細なインストール手順は次のとおりです。 1. 解凍して指定されたデ...

MySQL はカスタムシーケンスを使用して row_number 関数を実装します (詳細な手順)

いくつかの記事を読んだ後、ようやく MySQL で row_number() ソートを実装する方法が...

MySQL の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

jquery-multiselect を使用した IE6 のバグの解決方法

jquery-multiselect (ドロップダウン ボックスをチェックボックス付きの複数選択コン...

MySQL ストアド プロシージャのエラー処理例の詳細な説明

この記事では、例を使用して MySQL ストアド プロシージャのエラー処理について説明します。ご参考...

HTML コードの書き方に関する提案のまとめ

リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...

Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...

Mysql マスタースレーブレプリケーションの注意事項の説明

1. マスター'x@xxxx:x'への接続エラー- 再試行時間: 60 再試行回数:...