Vueは移動可能なフローティングボタンを実装します

Vueは移動可能なフローティングボタンを実装します

この記事の例では、どこにでも移動できるフローティングボタンを実現するためのVueの具体的なコードを共有しています。具体的な内容は次のとおりです。

1.htmlコード

<div
 class="コールバックフロート"
 @click="クリック時"
 @mousedown="下"
 @touchstart="下"
 @mousemove="移動"
 @touchmove="移動"
 @mouseup="終了"
 @touchend="終了"
 ref="fu"
 >
 <!-- <p @click="callback">戻る</p> -->
 <img @click="コールバック" src="@/assets/images/callbs.jpg" alt />
</div>

2. データで定義する

データ() {
 戻る {
  isLoading: false、
  flags: false, //コントロール使用位置: {
  x: 0,
  y: 0,
  },
  索引: "",
  ny: "",
  dx: "",
  dy: "",
  xPum: "",
  yPum: "",
 };
 },

3.jsコード

メソッド: {
 折り返し電話() {
  $router.go(-1);
 },
 リフレッシュ() {
  // ウィンドウの場所を再読み込みします。
  setTimeout((res) => {
  コンソールログ(res);
  this.isLoading = false;
  }, 1000);
 },
 下() {
  this.flags = true;
  var タッチ;
  if (イベント.タッチ) {
  タッチ = イベント.タッチ[0];
  } それ以外 {
  タッチ = イベント;
  }
  this.position.x = touch.clientX;
  this.position.y = touch.clientY;
  this.dx = this.$refs.fu.offsetLeft;
  this.dy = this.$refs.fu.offsetTop;
 },
 動く() {
  if (this.flags) {
  var タッチ;
  if (イベント.タッチ) {
   タッチ = イベント.タッチ[0];
  } それ以外 {
   タッチ = イベント;
  }
  this.nx = touch.clientX - this.position.x;
  this.ny = touch.clientY - this.position.y;
  this.xPum = this.dx + this.nx;
  this.yPum = this.dy + this.ny;
  let width = window.innerWidth - this.$refs.fu.offsetWidth; // 画面の幅からコントロールの幅を引いた値 let height = window.innerHeight - this.$refs.fu.offsetHeight; // 画面の高さからコントロールの高さを引いた値 this.xPum < 0 && (this.xPum = 0);
  this.yPum < 0 && (this.yPum = 0);
  this.xPum > 幅 && (this.xPum = 幅);
  this.yPum > 高さ && (this.yPum = 高さ);
  // if (this.xPum >= 0 && this.yPum >= 0 && this.xPum<= 幅 &&this.yPum<= 高さ) {
  this.$refs.fu.style.left = this.xPum + "px";
  this.$refs.fu.style.top = this.yPum + "px";
  // }
  //デフォルトでページがスライドしないようにする document.addEventListener(
   「タッチムーブ」、
   関数 () {
   イベントをデフォルトにしない();
   },
   間違い
  );
  }
 },
 //マウスが離されたときの関数 end() {
  this.flags = false;
 },
 クリック() {
  //ここではこれをサブコンポーネントとして使用しています。this.$emit("click");
 },
 },

4.スタイル

<スタイルスコープ>
.コールバックp{
 フォントサイズ: 16px;
 色: #fff;
 背景: rgba(56, 57, 58, 0.5);
 境界線の半径: 50%;
 テキスト配置: 中央;
 幅: 50px;
 高さ: 50px;
 行の高さ: 50px;
 フォントファミリー: PingFang SC;
 フォントの太さ: 600;
 ボックスシャドウ: 0 0 10px #fff;
}
.コールバック画像{
 表示: ブロック;
 幅: 50px;
 高さ: 50px;
 ボックスシャドウ: 0 0 10px rgb(133, 129, 129);
 境界線の半径: 50%;
 背景: #fff;
}
。折り返し電話 {
 位置: 固定;
 上: 40px;
 左: 20px;
 zインデックス: 99999;
}
.float {
 位置: 固定;
 右: 20px;
 上位: 60%
 タッチアクション: なし;
 テキスト配置: 中央;
 幅: 50px;
 高さ: 50px;
 境界線の半径: 24px;
 行の高さ: 48px;
 色: 白;
}
</スタイル>

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

以下もご興味があるかもしれません:
  • Vueはモバイル端末上でフローティングウィンドウ効果を実現します
  • Vue の一時停止されたドラッグ可能なフローティング ボタンのサンプル コード
  • Vue の element-ui テーブル サムネイル フローティング ズーム機能のサンプル コード
  • Vueはページの右上隅にフローティング/非表示のシステムメニューを実装します。
  • マウスがテキスト上を通過するとフローティングボックスを表示する効果を実現するVueサンプルコード
  • Vue.js マウスホバー画像変更機能
  • vue+jquery+lodashはスライド時にトップフローティング固定効果を実現します
  • VueはPCの側面にボールを浮かべるコードを実装する
  • Vue は超長テキストインターセプションとフローティングボックスプロンプトを実装します
  • Vueは浮遊ボール効果を実現します

<<:  Ubuntu Server のターミナルのウェルカム メッセージで広告を無効にする方法

>>:  エラー mysql テーブル 'performance_schema...解決方法

推薦する

Bツリーの特性の紹介

B ツリーは一般的なデータ構造です。彼と一緒にB+ツリーがあります。ここで、概念を明確にする必要があ...

http.server に基づく LAN サーバーの構築プロセスの分析

皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイ...

MySQLデータベースの基礎知識

目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...

Vue 2つのフィールドの共同検証によりパスワード変更機能を実現

目次1. はじめに2. ソリューションの実装2.1 実装コード2.2 コードの説明2.3 検証結果1...

Dockerを使用してシンプルなJava開発およびコンパイル環境を構築する方法の詳細な説明

Java 言語には多くのバージョンがあります。一般的に使用されている Java 8 に加えて、一部の...

React Routerの歴史について簡単に説明します

React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...

Vue のフィルターウィジェットの詳細な使用方法

この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介...

WeChatアプレットはビデオプレーヤーのビデオコンポーネントを使用します

この記事の例では、WeChatアプレットのビデオプレーヤーコンポーネントの具体的なコードを参考までに...

Docker イメージ管理の一般的な操作コード例

ミラーリングも Docker のコアコンポーネントの 1 つです。ミラーリングはコンテナ操作の基盤で...

MySQLはランダムに一定数のレコードを抽出します

以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...

ミニプログラムは、カスタムのマルチレベル単一選択と複数選択を実装します

この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...

win10 mysql 5.6.35 winx64 無料インストールバージョン設定チュートリアル

mysql 5.6.35 winx64無料インストールバージョン構成チュートリアルwin10、具体的...

uniapp プロジェクトをデスクトップ アプリケーションとしてパッケージ化する方法

Electronのインストール cnpm 電子をインストール -g electron-package...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...