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

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

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

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

推薦する

Docker での Redis の永続ストレージの詳細な説明

この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

Javascriptを使用して滑らかな曲線を生成する方法

目次序文ベジェ曲線の紹介二次ベジェ曲線3次ベジェ曲線ベジェ曲線計算機能フィッティングアルゴリズム付録...

マルチポートおよびマルチドメイン名アクセスのNginx構成の実装

サーバーに複数のサイトを展開するには、異なるサイトにアクセスするために複数のポートを開く必要がありま...

Docker で Docker0 ブリッジのデフォルトのネットワーク セグメントを変更する方法

1. 背景Docker サービスが開始されると、デフォルトで docker0 ブリッジが作成され (...

Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法

最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...

Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順

1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...

IE5.0以降のHTCコンポーネントの定義の概要

Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

MySQL テーブルパーティションの使用法と基本原理の詳細な説明

目次パーティションテーブルとはパーティションテーブルの適用シナリオパーティションテーブルの制限パーテ...

MySQL マスタースレーブ同期、トランザクションロールバックの実装原理

ビンログBinLog は、データベース テーブル構造の変更 (テーブルの作成、変更など) とテーブル...

プライベートイメージウェアハウスを構築するためのDockerレジストリの実装方法

マイクロサービスのイメージは、保存用に Docker リポジトリにアップロードされます。一般的に使用...

Faint: 「Web2.0 を使用して標準に準拠したページを作成する」

今日、ある人がウェブサイト開発プロジェクトについて話をしてくれました。具体的な要件について話すと、「...

iptables の再起動後に Docker の iptables ルールの完全なプロセスが失われる

原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...