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...解決方法

推薦する

WeChatアプレット開発の共通機能と使用方法のまとめ

ここでは、主に小さなプログラムの開発プロセスでよく使われる、非常に実用的な機能ポイントをいくつか整理...

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用して...

node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

node-media-server を使用するプロセスの一部を記録します。この記事の環境はWindo...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

Win10 システムに MySQL8.0.13 をインストールする際の問題と解決策

オペレーティングシステム: Windows10 MySQL バージョン: 8.0.13-winx64...

MySQLログに関する知識のまとめ

目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...

MySQL 5.7 生成列の使用例の分析

この記事では、例を使用して、MySQL 5.7 で生成された列の使用方法を説明します。ご参考までに、...

データベース接続のURLの詳細な説明と概要

データベース接続のURLの詳細な説明と概要JDBC URL = プロトコル名 + サブプロトコル名 ...

JavaScript の基本: ループと配列

目次ループ - for forループの基本的な使い方ループを終了するネストされたループ配列配列とは何...

html2canvas で破線境界線を実装する例

html2canvas は、HTML 要素からキャンバスを生成するライブラリです。描画されるキャンバ...

MySQL で左結合を使用して where 条件を追加する問題の詳細な分析

現在の需要:グループとファクターの 2 つのテーブルがあります。1 つのグループは複数のファクターに...

MySQL 外部キー制約とテーブル関係の概要

目次外部キーテーブルの関係を決定する方法テーブル関係を作成する方法1対多の関係 - 従業員テーブルと...

HTML割引価格計算の実装原理とスクリプトコード

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

Vue.jsはタイムライン機能を実装します

この記事では、タイムライン機能を実装するためのVue.jsの具体的なコードを参考までに共有します。具...

MySQL の例 DTID マスタースレーブ原理の分析

目次1. GTIDの基本概念2. GTIDの利点3. GTIDの仕組み4. 従来のレプリケーションに...