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

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

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

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

推薦する

CSS3で作成した画像スクロール効果

成果を達成する実装コードhtml <base href="https://s3-us...

Vueでのバスの使用に関する詳細な説明

Vue バス メカニズム (バス) vuex を使用するだけでなく、vue 内の親子以外のコンポーネ...

Vue で計算プロパティを使用する際の知識ポイントのまとめ

計算されたプロパティ場合によっては、テンプレートにロジックを詰め込みすぎると、テンプレートが重くなり...

MySQLデュアルマスター(マスターマスター)アーキテクチャ構成ソリューション

企業では、データベースの高可用性は常に最優先事項です。多くの中小企業は、MySQL マスター スレー...

Vue diffアルゴリズムの完全な分析

目次序文Vue 更新ビューパッチ同じVノードパッチVノード更新子供序文Vue は仮想 DOM を使用...

MySQL 8.0.12 winx64 詳細なインストールチュートリアル

この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...

Windows に WSL をインストールして構成する方法

WSLとはBaidu 百科事典からの一節を引用します。 Windows Subsystem for ...

Linux curl フォームのログインまたは送信と Cookie の使用に関する詳細な説明

序文この記事では主に、curl を介してフォーム送信ログインを実装する方法について説明します。単一の...

MySQLでビューを作成する方法

基本的な構文CREATE VIEW ステートメントを使用してビューを作成できます。構文の形式は次のと...

【HTML要素】タグテキストの詳細説明

1. 基本的なテキスト要素を使用してコンテンツをマークアップするまず表示効果を見てみましょう:対応す...

Vue グローバルメソッドを設定する 2 つの方法

目次1. はじめに2. 最初の方法3. 2番目の方法要約する1. はじめにVue プロジェクトの開発...

CSS 線形グラデーション凹型長方形遷移効果の実装

この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...

Kylin 4.0.2 (Ubuntu) でブート パーティションを拡張するプロセスの紹介

目次序文1. 新しいパーティションを準備する2. ブートパーティションをコピーする3. fstabフ...

Vueにおけるキーの役割と原理の詳細な説明

目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...

MySQL データベースのインデックスとトランザクション

目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...