【CSS動畫01--登錄】

CSS動畫01--登錄

  • 介紹
  • 代碼
    • HTML
    • CSS
    • JS

介紹

在這里插入圖片描述
在這里插入圖片描述

當鼠標不同方向的劃過時展示不同效果的登錄,以上是一個簡單的圖片展示

代碼

HTML

<!DOCTYPE html>
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>用戶登錄</title><link rel="stylesheet" href="./css/1.css"><script src="./js/jquery-3.6.0.min.js"></script>
</head>
<body><div class="container"><h1>登錄動畫</h1><form action=""><input type="text" class="tbx" placeholder="賬號"><input type="password" class="tbx" placeholder="密碼"><input type="submit" class="sub" value="登錄"></form></div><script>// 定義一個con綁定.containerconst con=document.querySelector('.container');// 定義兩個函數開關(門)let isIn=true;      // 鼠標進去的門,默認打開let isOut=false;    // 鼠標出去的門,默認關閉var span;           // 給未出生的元素取個名字span// 添加監聽// 監聽鼠標進去的事件con.addEventListener('mouseenter',(e)=>{// 如果進去的門是打開的,就可以執行這個函數if(isIn){// 獲取進入的鼠標位置// 生成元素的位置=進入點距離窗口的距離-父盒子距離窗口的距離let inX=e.clientX-e.target.offsetLeft;let inY=e.clientY-e.target.offsetTop;// 創建一個span元素,并且給它對應的出生坐標let el=document.createElement('span');el.style.left=inX+'px';el.style.top=inY+'px';// 添加到con對應的父元素,即containercon.appendChild(el);$('.container span').removeClass('out');    // 移除出去的動畫$('.container span').addClass('in');        // 添加進入的動畫span=document.querySelector('.container span');isIn=false;     // 關閉進來的門(不能使用進入的方法)isOut=true;     // 打開出去的門(可以使用出去的方法)}})// 監聽鼠標出去的事件con.addEventListener('mouseleave',(e)=>{if(isOut){// 獲取出去的鼠標位置// 生成元素的位置=出去點距離窗口的距離-父盒子距離窗口的距離let outX=e.clientX-e.target.offsetLeft;let outY=e.clientY-e.target.offsetTop;$('.container span').removeClass('in');     // 移除進入的動畫$('.container span').addClass('out');       // 添加出去的動畫// 添加出去的坐標$('.out').css('left',outX+'px');$('.out').css('top',outY+'px');isOut=false;    // 關閉出去的門// 當動畫結束后再刪除元素setTimeout(() => {con.removeChild(span);      // 刪除元素isIn=true;                  // 打開進入的門}, 500);}})</script>
</body>
</html>

CSS

*{margin:0;padding:0;
}
body{/* 設置body高度為100%窗口高度 */height:100vh;/* 彈性盒子模型 */display: flex;/* 限免兩個屬性是讓body里的子類居中 */justify-content: center;align-items: center;background-color: #1d1928;
}
.container{display: flex;justify-content: center;align-items: center;flex-direction: column;width: 350px;height: 450px;border-radius: 20px;background-color: #4471a3;/* 盒子陰影 */box-shadow: 15px 15px 10px rgba(33,45,58,0.3);overflow: hidden;position:relative;
}
.container form{width: 350px;height: 200px;display: flex;justify-content: space-around;flex-direction: column;align-items: center;z-index: 1;
}
.container form .tbx{width: 250px;height: 40px;outline: none;border: none;border-bottom: 1px solid #fff;background: none;color:#fff;font-size: 15px;
}
/* 設置文本框提示文本的樣式 */
.container form .tbx::placeholder{color: #fff;font-size: 15px;
}
.container form .sub{width: 250px;height: 40px;outline: none;border:1px solid #fff;border-radius: 20px;letter-spacing: 5px;color:#fff;background: none;cursor: pointer;margin-top: 20px;
}
.container h1{color: #ecf0f1;font-size: 50px;letter-spacing: 5px;font-weight: 100;/* 文字陰影 */text-shadow: 5px 5px 5px rgba(33,45,58,0.3);z-index: 1;
}
/* 設置鼠標進入的樣式 */
.container .in{position: absolute;top:0;left:0;display: block;width: 0;height: 0;border-radius: 50%;background: #cf455f;transform: translate(-50%,-50%);/* 使用in動畫,持續0.5秒,緩出的時間函數,停留在最后一幀 */animation: in 0.5s ease-out forwards;
}
/* 設置鼠標離開的樣式 */
.container .out{position: absolute;top:0;left:0;display: block;width: 1200px;height: 1200px;border-radius: 50%;background: #cf455f;transform: translate(-50%,-50%);/* 使用out動畫,持續0.5秒,緩出的時間函數,停留在最后一幀 */animation: out 0.5s ease-out forwards;
}
/* 動畫 */
/* 設置鼠標進入時,元素的動畫 */
@keyframes in{/* 初始關鍵幀 */0%{width: 0;height: 0;}/* 結束關鍵幀 */100%{width: 1200px;height: 1200px;}
}
/* 設置鼠標離開時,元素的動畫 */
@keyframes out{/* 初始關鍵幀 */0%{width: 1200px;height: 1200px;}/* 結束關鍵幀 */100%{width: 0;height: 0;}
}

JS

jquery官網鏈接地址: 進入官網
按照圖片上的紅色字體進行操作即可
按照圖片上的紅色字體進行操作即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40597.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40597.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40597.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

生物筆記——暑期學習筆記(四)

生物筆記——暑期學習筆記&#xff08;四&#xff09; 文章目錄 前言一、R篇1. unname()2. duplicated()3. 數據提取4. 分組 二、生信篇1. 文本處理常用命令2. 命令輸出1. 重定向2. 多命令執行 3. 文本工具4. 本地hmm鑒定1. hmmer軟件安裝2. 文件準備3. 基于hmm的鑒定 總結 前言…

【制作npm包5】npm包制作完整教程,我的第一個npm包

制作npm包目錄 本文是系列文章&#xff0c; 作者一個橙子pro&#xff0c;本系列文章大綱如下。轉載或者商業修改必須注明文章出處 一、申請npm賬號、個人包和組織包區別 二、了解 package.json 相關配置 三、 了解 tsconfig.json 相關配置 四、 api-extractor 學習 五、npm包…

MySQL的配置文件my.cnf與my.ini

一、my.cnf與my.ini win系統&#xff0c;MySQL配置文件為my.ini 其他系統&#xff08;Ubuntu、CentOS、macOS)MySQL配置文件為my.cnf 二、my.cnf與my.ini的路徑 2.1 默認路徑 MySQL 的配置文件 my.cnf 可能位于多個位置&#xff0c;具體取決于安裝方式和操作系統。以下是一…

Redis如何處理內存溢出的情況?

當Redis的內存使用達到上限時&#xff0c;會出現內存溢出的情況。Redis提供了幾種處理內存溢出的機制&#xff1a; 內存淘汰策略&#xff1a;Redis提供了多種內存淘汰策略&#xff0c;用于在內存不足時選擇要移除的鍵。常見的淘汰策略包括&#xff1a; LRU&#xff08;Least Re…

2023年國賽數學建模思路 - 案例:最短時間生產計劃安排

文章目錄 0 賽題思路1 模型描述2 實例2.1 問題描述2.2 數學模型2.2.1 模型流程2.2.2 符號約定2.2.3 求解模型 2.3 相關代碼2.4 模型求解結果 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短時…

Kotlin開發筆記:使用委托進行拓展

Kotlin開發筆記&#xff1a;使用委托進行拓展 導言 在OO語言(面向對象)中&#xff0c;我們經常會用到委托或者代理的思想。委托和代理在乍一看很相似&#xff0c;其實其各有各的側重點&#xff0c;這里我引用ChatGpt的回答&#xff1a; 委托&#xff08;Delegation&#xff09…

探索C語言中的常見排序算法

探索C語言中的常見排序算法 排序算法是計算機科學中至關重要的基礎知識之一&#xff0c;它們能夠幫助我們對數據進行有序排列&#xff0c;從而更高效地進行搜索、插入和刪除操作。在本篇博客中&#xff0c;我們將深入探討C語言中的一些常見排序算法&#xff0c;包括它們的工作…

在C中使用Socket實現多線程異步TCP消息發送

目錄 基礎知識開始實現主要函數說明結束語 在本篇文章中&#xff0c;我們會探討如何在C語言中使用socket來實現多線程&#xff0c;異步發送TCP消息的系統。雖然C標準庫并沒有原生支持異步和多線程編程&#xff0c;但是我們可以結合使用POSIX線程&#xff08;pthread&#xff09…

Java解決四大查找(一)

Java解決四大查找 一.線性查找1.1 題目1.2 思路分析1.3 代碼演示 二.二分查找(雙指針法)2.1 題目2.2 思路分析(圖解加文字)2.3 代碼演示 一.線性查找 1.1 題目 在數組{1&#xff0c;8&#xff0c;1024&#xff0c;521&#xff0c;1889}中查找數字8&#xff0c;如果有&#xff…

【知識分享】高防服務器的防御機制

【知識分享】高防服務器的防御機制 易受到攻擊的網站選擇接入高防服務更安全&#xff0c;大家對于這個都清楚!但是對于高防服務如何實現防御來保障安全的&#xff0c;又了解多少呢?今天壹基比小源&#xff08;貳伍壹叁壹叁壹貳玖捌&#xff09;就來說說高防服務實現防御的常規…

地址解析協議-ARP

ARP協議 無論網絡層使用何種協議&#xff0c;在實際網絡的鏈路上傳輸數據幀時&#xff0c;最終必須使用硬件地址 地址解析協議&#xff08;Address Resolution Protocol&#xff0c;ARP&#xff09;&#xff1a;完成IP地址到MAC地址的映射&#xff0c;每個主機都有一個ARP高速緩…

【數據結構】二叉樹篇| 綱領思路02+刷題

博主簡介&#xff1a;努力學習的22級計算機科學與技術本科生一枚&#x1f338;博主主頁&#xff1a; 是瑤瑤子啦每日一言&#x1f33c;: 所謂自由&#xff0c;不是隨心所欲&#xff0c;而是自我主宰。——康德 目錄 一、前言二、刷題1、翻轉二叉樹 2、二叉樹的層序遍歷?3、 二…

線性代數再回顧

最近&#xff0c;在深度學習線性代數&#xff0c;之前大一的時候學過線性代數&#xff0c;但那純屬于是應試用的&#xff0c;考試一考完&#xff0c;啥都忘了&#xff0c;也說出不出個所以然&#xff0c;所以&#xff0c;在B站的MIT的線性代數以及3blue1brown線性代數的本質中去…

git命令使用

君子拙于不知己,而信于知己。——司馬遷 清屏&#xff1a;clear 查看當前面板的路徑&#xff1a;pwd 查看當前面板的文件&#xff1a;ls 創建文件夾&#xff1a;mkdir 文件夾名 創建文件&#xff1a;touch 文件名 刪除文件夾&#xff1a;rm -rf 文件夾名 刪除文件&#xff1a;r…

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷達成像的高效實現

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷達成像的高效實現 注1&#xff1a;本文系“無線感知論文速遞”系列之一&#xff0c;致力于簡潔清晰完整地介紹、解讀無線感知領域最新的頂會/頂刊論文(包括但不限于 Nature/Science及其子刊; MobiCom, Sigcom, MobiSys, NSDI…

爬蟲IP時效問題:優化爬蟲IP使用效果實用技巧

目錄 1. 使用穩定的代理IP服務提供商&#xff1a; 2. 定期檢測代理IP的可用性&#xff1a; 3. 配置合理的代理IP切換策略&#xff1a; 4. 使用代理IP池&#xff1a; 5. 考慮代理IP的地理位置和速度&#xff1a; 6. 設置合理的請求間隔和并發量&#xff1a; 總結 在爬蟲過…

python知識:什么是字符編碼?

前言 嗨嘍&#xff0c;大家好呀~這里是愛看美女的茜茜吶 我們的MySQL使用latin1的默認字符集&#xff0c; 也就是說&#xff0c;對漢字字段直接使用GBK內碼的編碼進行存儲&#xff0c; 當需要對一些有漢字的字段進行拼音排序時&#xff08;特別涉及到類似于名字這樣的字段時…

Docker網絡與資源控制

一、Docker 網絡實現原理 Docker使用Linux橋接&#xff0c;在宿主機虛擬一個Docker容器網橋(docker0)&#xff0c;Docker啟動一個容器時會根據Docker網橋的網段分配給容器一個IP地址&#xff0c;稱為Container-IP&#xff0c;同時Docker網橋是每個容器的默認網關。因為在同一宿…

Oracle外部表ORACLE_LOADER方式加載數據

當數據源為文本或其它csv文件時&#xff0c;oracle可通過使用外部表加載數據方式&#xff0c;不需要導入可直接查詢文件內的數據。 1、如下有一個文件名為&#xff1a;test1.txt 的數據文件。數據文件內容為&#xff1a; 2、使用sys授權hr用戶可讀寫 DATA_PUMP_DIR 目錄權限&a…

探索未來:元宇宙與Web3的無限可能

隨著科技的奇跡般發展&#xff0c;互聯網已經成為了我們生活的不可分割的一部分。然而&#xff0c;盡管它的便利性和普及性帶來了巨大的影響&#xff0c;但我們仍然面臨著傳統互聯網體驗的諸多限制。 購物需要不斷在實體店與電商平臺間切換&#xff0c;教育依然受制于時間與地…