Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 好男人看的在线www视频二,日韩精品一区二区三区大桥未久,99综合久久

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS蒙層+彈框

          CSS蒙層+彈框
          <!DOCTYPE html>
          <html lang="en">
          <head>
           <title></title>
           <meta charset="UTF-8">
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <link href="css/style.css" rel="stylesheet">
           <style>
           * {
           margin: 0;
           }
           .mask {
           background-color: #7b7070;
           position: absolute;
           top: 0;
           left: 0;
           right: 0;
           bottom: 0;
           width: 100%;
           height: 100%;
           }
           .box {
           position: absolute;
           top: 50%;
           margin-top: -100px;
           background-color: #fff;
           height: 200px;
           width: calc(100% - 50px); //這里是水平居中的關鍵 margin-left=50/2
           margin-left: 25px;
           text-align: center;
           border-radius: 5px;
           }
           </style>
          </head>
          <body>
           <div>
           <div class="mask"></div>
           <div class="box">
           <p>title</p>
           </div>
           </div>
          </body>
          </html>
          

          Vue3 根據點擊位置,實現一個用戶頭像彈框定位

          **開篇:**

          在Web開發中,響應式UI設計一直是提升用戶體驗的關鍵所在。Vue3以其優秀的響應式機制和簡潔的API深受開發者喜愛。本文將詳細介紹如何利用Vue3的功能特性,結合DOM事件處理和CSS定位,實現一個可以根據點擊位置動態顯示用戶頭像彈框的功能。為了確保文章具有實踐指導意義,我們將按照實際操作流程,逐步解析并提供核心代碼示例。

          ---

          ### **一、搭建Vue3項目與基礎布局**

          **標題:** 初始化項目與頁面結構設定

          **內容:**

          首先,使用Vue CLI創建一個新的Vue3項目,并在主頁面上設置基礎布局,包括一個用于觸發頭像彈框顯示的用戶頭像區域和一個隱藏的彈框組件。

          ```html

          <template>

          <div id="app">

          <!-- 用戶列表或其他包含頭像的區域 -->

          <div @click="showAvatarPopup($event)">

          <img :src="user.avatarUrl" alt="User Avatar" class="avatar" />

          </div>

          <!-- 頭像彈框組件,初始狀態為隱藏 -->

          <AvatarPopup v-if="isPopupVisible" :position="popupPosition" :user="user" @close="hideAvatarPopup" />

          </div>

          </template>

          <script>

          import AvatarPopup from '@/components/AvatarPopup.vue';

          export default {

          components: {

          AvatarPopup,

          },

          data() {

          return {

          isPopupVisible: false,

          user: { // 示例用戶數據

          avatarUrl: 'path/to/avatar.jpg',

          // 其他用戶信息...

          },

          popupPosition: { x: 0, y: 0 }, // 彈框初始位置

          };

          },

          methods: {

          showAvatarPopup(event) {

          this.popupPosition={ x: event.clientX, y: event.clientY }; // 獲取點擊位置

          this.isPopupVisible=true; // 顯示彈框

          },

          hideAvatarPopup() {

          this.isPopupVisible=false; // 隱藏彈框

          },

          },

          };

          </script>

          ```

          ### **二、創建并樣式化頭像彈框組件**

          **標題:** 設計并實現自定義的`AvatarPopup`組件

          **內容:**

          在`AvatarPopup.vue`組件中,我們需要接收傳遞過來的位置坐標,并使用CSS絕對定位來使彈框跟隨鼠標點擊位置展示。

          ```html

          <!-- AvatarPopup.vue -->

          <template>

          <div class="avatar-popup" :style="{ top: position.y + 'px', left: position.x + 'px' }">

          <img :src="user.avatarUrl" alt="Popup Avatar" class="popup-avatar" />

          <!-- 其他用戶信息展示... -->

          <button @click="emitClose">關閉</button>

          </div>

          </template>

          <script>

          export default {

          props: {

          position: Object,

          user: Object,

          },

          emits: ['close'],

          methods: {

          emitClose() {

          this.$emit('close');

          },

          },

          };

          </script>

          <style scoped>

          .avatar-popup {

          position: absolute;

          width: fit-content;

          background-color: #fff;

          border-radius: 4px;

          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);

          padding: 1rem;

          z-index: 1000; /* 確保彈框位于頂層 */

          }

          .popup-avatar {

          width: 100px;

          height: 100px;

          object-fit: cover;

          }

          </style>

          ```

          ### **三、優化彈框顯示邏輯**

          **標題:** 考慮邊界情況,確保彈框始終在可視區域內

          **內容:**

          為了防止彈框超出瀏覽器窗口范圍,我們需要對計算出的彈框位置進行適當的調整:

          ```javascript

          // 在App.vue中的methods內

          showAvatarPopup(event) {

          const viewportWidth=document.documentElement.clientWidth;

          const viewportHeight=document.documentElement.clientHeight;

          const popupWidth=document.querySelector('.avatar-popup').offsetWidth;

          const popupHeight=document.querySelector('.avatar-popup').offsetHeight;

          const x=Math.min(Math.max(event.clientX, popupWidth / 2), viewportWidth - popupWidth / 2);

          const y=Math.min(Math.max(event.clientY, popupHeight / 2), viewportHeight - popupHeight / 2);

          this.popupPosition={ x, y };

          this.isPopupVisible=true;

          }

          ```

          ### **四、添加過渡動畫效果**

          **標題:** 使用Vue Transition實現彈框顯示/隱藏動畫

          **內容:**

          為了讓彈框的出現和消失更加流暢自然,我們可以使用Vue的Transition組件包裹AvatarPopup,為其添加CSS過渡動畫。

          ```html

          <!-- App.vue -->

          <transition name="fade" appear>

          <AvatarPopup v-if="isPopupVisible" :position="popupPosition" :user="user" @close="hideAvatarPopup" />

          </transition>

          <style>

          .fade-enter-active,

          .fade-leave-active {

          transition: opacity .3s ease;

          }

          .fade-enter-from,

          .fade-leave-to {

          opacity: 0;

          }

          </style>

          ```

          ---

          **總結:**

          通過以上步驟,我們成功地在Vue3項目中實現了根據點擊位置動態定位用戶頭像彈框的功能。這一功能在社交網絡、評論區以及其他需要展現用戶詳細信息的場景中非常實用,既提升了用戶體驗,也展現了Vue3強大而靈活的應用能力。隨著進一步實踐,你可以嘗試增加更多高級功能,如自動調整彈框方向以適應屏幕邊界,或是集成拖拽移動等功能,從而使得彈框組件更為完善和人性化。

          家好,今天給大家介紹一款,css實現的圖片懸停旋轉彈出文本框html頁面前端源碼(圖1)。送給大家哦,獲取方式在本文末尾。

          圖1

          當鼠標經過圖片的時候,就會激活旋轉和文本彈出事件,非常適合用在圖片展示的功能中(圖2)

          圖2

          源碼完整,需要的朋友可以下載學習(圖3)

          圖3

          本源碼編碼:20241,需要的朋友,訪問下面鏈接后,搜索20241,即可獲取。

          「鏈接」


          主站蜘蛛池模板: 无码精品人妻一区二区三区免费| 亚洲中文字幕丝袜制服一区 | 日韩免费观看一区| 波多野结衣一区二区三区| 亚洲一区日韩高清中文字幕亚洲| 国产成人精品日本亚洲专一区 | 国产精品视频一区二区猎奇| 亚洲韩国精品无码一区二区三区 | 男插女高潮一区二区| 色老板在线视频一区二区 | 99久久精品费精品国产一区二区| 精品国产一区二区三区www| 中文字幕日韩一区| 色一乱一伦一图一区二区精品| 国产伦精品一区二区三区视频金莲| 国产一区二区好的精华液 | 波霸影院一区二区| 日韩精品一区二区三区不卡| 亚洲码欧美码一区二区三区| 亚洲无圣光一区二区 | 丝袜美腿高跟呻吟高潮一区| 香蕉久久ac一区二区三区| 天堂一区二区三区在线观看| 国产一区二区三区乱码在线观看| 国产小仙女视频一区二区三区| 免费高清在线影片一区| 久久精品一区二区东京热| 一区二区三区精品| 精品人妻系列无码一区二区三区 | 日本一区二区三区在线看 | 无码人妻久久久一区二区三区 | 日韩精品无码一区二区三区不卡| 无码少妇一区二区三区浪潮AV| 国产激情无码一区二区app| 高清一区二区三区免费视频 | 熟女少妇丰满一区二区| 亚洲一区爱区精品无码| 精品无码AV一区二区三区不卡| av无码免费一区二区三区| 国产乱码精品一区二区三区香蕉| 国产一区二区三区小向美奈子|