Vueモバイル端末が指のスライド効果を実現

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具体的な内容は次のとおりです。

スライドすると、それに応じて黄色のブロックの幅が変わります。タッチクリックで実現しています。現時点では、幅の変更に問題があると感じています。まだ検討中です。

コードは次のとおりです:

<テンプレート lang="html">
  <div class="back" ref="back" @touchstart.prevent="touchStart" @touchmove.prevent="touchMove">
    <div class="back-r" 
 @touchstart.prevent="タッチ開始" @touchmove.prevent="タッチ移動"
 @touchend="タッチ終了"
 ref="右"></div>
  </div>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
  データ() {
  },
  作成された() {
    this.touch = {}
  },
  メソッド: {
    タッチスタート(e) {
      定数touch = e.touches[0]
   
  //クリック時の位置 this.touch.startX = touch.pageX
      this.touch.startY = touch.pageY
   console.log('----',this.$refs.right.clientWidth)
    },
//クリックを開始するtouchMove(e) {
      console.log("移動");
      定数touch = e.touches[0]
   //スライド位置と初期位置の差 const deltaX = touch.pageX - this.touch.startX
   コンソールログ(デルタX)
      定数 deltaY = touch.pageY - this.touch.startY;
      //右幅を印刷 console.log('----',this.$refs.right.clientWidth+'px') 
   const rwidth = this.$refs.right.clientWidth
   //右の幅を変更します this.$refs.right.style.width = (this.$refs.right.clientWidth + Math.floor(deltaX/50)) +'px'
   //幅が0未満か400より大きいかを判断する
   rwidth<0の場合{
    this.$refs.right.style.width = 0
   } そうでない場合(rwidth>400){
    this.$refs.right.style.width = 400+'px'
   } 
   console.log('----',this.$refs.right.clientWidth+'px')

    },
    タッチ終了() {
      console.log("終了");
      // console.log(this.percent);
    }
  }
}
</スクリプト>
 
<style scoped lang="stylus" rel="stylesheet/stylus">
体{
  マージン:0;
  パディング: 0;
  オーバーフロー: 非表示;
  タッチアクション:なし;
}
。戻る{
 幅: 100%
 高さ: 100ピクセル
 境界線 10px 実線 #0000FF
 オーバーフロー: 非表示;
}
  
  
  .back-r{
   // 表示: インラインブロック
   // 垂直位置合わせ: 上
   位置: 相対
   幅: 400ピクセル
   高さ: 100%
   オーバーフロー: 非表示;
   背景色: 黄色
  }
    
</スタイル>

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

以下もご興味があるかもしれません:
  • vue2.0 モバイル スライド イベント vue-touch のサンプル コード
  • Vueでモバイル端末上で左右スライド効果を実現する方法
  • Vue カスタム モバイル タッチ イベント: クリック、スライド、長押しイベント
  • vue vue-touch モバイルジェスチャの詳細な説明

<<:  docker-composeの詳細なインストールと使用方法

>>:  MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

推薦する

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...

自動的にフォーカスを取得する要素入力ボックスの実装

最近のプロジェクトでフォームを作成するときに、コメント ボックスまで自動的にスクロールし、コメント ...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

ServerManager の起動時にデータベースに接続できないエラーを解決する方法

Servermanager 起動時の接続データベース エラーmgrstart.batを実行しますエラ...

JavaScript 関数構文の説明

目次1. 通常の機能2. 矢印関数3. データパケットJSON 4. オブジェクト5. 約束6. 非...

Ubuntu 20.04 に MySql5.7 をインストールして構成するための詳細なチュートリアル

目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...

MySQLアラームの詳細な分析と処理

最近、あるサービスにアラームが発生し、耐えられなくなっています。アラーム情報は次のとおりです。メトリ...

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

nginxを使用して取得したIPアドレスが127.0.0.1である問題を解決する

IPツールを取得 lombok.extern.slf4j.Slf4j をインポートします。 org....

CSSはBEM命名規則の実践を使用する

クラスを見るとき、どのような情報を得たいですか?このクラスはどこで使用され、その機能は何ですか?この...

MySQL シリーズ 4 SQL 構文

目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...

MAC での MYSQL5.7.17 接続失敗の問題と解決策

MYSQL5.7.17 が MAC で接続できない問題。SQLBench_community 6.3...

Vueで親子コンポーネント通信を実装する方法

目次1. 親コンポーネントと子コンポーネントの関係2. 小道具3. $エミット4. $親V. 結論 ...

HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN

複雑なテーブル構造では、一部のセルが垂直方向に複数のセルにまたがるため、列間属性 COLSPAN を...

MySQLクエリの基本的なクエリ操作の学習

序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...