91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web前端動畫專題(2):輸入框特效

發布時間:2020-08-05 03:46:36 來源:ITPUB博客 閱讀:169 作者:智云編程 欄目:web開發

特效一覽

劃線動態

web前端動畫專題(2):輸入框特效

動態邊框

web前端動畫專題(2):輸入框特效

劃線動態

效果圖

web前端動畫專題(2):輸入框特效

原理和代碼

:before :after 偽元素指定了一個元素文檔樹內容之前和之后的內容。由于 input 標簽不是可插入內容的容器。所以這里下劃線無法通過偽元素來實現。需要借助其他 dom 節點。


<div>
  <input type="text" />
  <span></span>
</div>
web前端開發學習Q-q-u-n: 784783012 ,分享開發工具,零基礎,進階視頻教程,希望新手少走彎路

包裹在外的父元素 div 應該設置成 inline-block ,否則寬度會滿屏。


div {
  position: relative;
  display: inline-block;
}

input 標簽需要禁用默認樣式:


input {
  outline: none;
  border: none;
  background: #fafafa;
}

span 標簽實現「左進右出」的動態,需要改變 transform-origin 方向。為了避免回流重繪,通過 scaleX 來實現寬度變化的視覺效果。


input ~ span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: #262626;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.3s ease-in-out;
}
input:focus ~ span {
  transform: scaleX(1);
  transform-origin: left center;
}

動態邊框

效果圖

web前端動畫專題(2):輸入框特效

原理和代碼

如動態圖所示,有 4 條邊框。所以除了 input 元素外,還需要準備其他 4 個 dom。為了方便定位,嵌套一個父級元素。


<div>
  <input type="text">
  <span class="bottom"></span>
  <span class="right"></span>
  <span class="top"></span>
  <span>
</div>
web前端開發學習Q-q-u-n: 784783012 ,分享開發工具,零基礎,進階視頻教程,希望新手少走彎路

和「劃線動態」類似,input 和 div 的樣式基本一樣。為了好看,改一下 padding 屬性。


div {
  position: relative;
  display: inline-block;
  padding: 3px;
}
input {
  outline: none;
  border: none;
  background: #fafafa;
  padding: 3px;
}

對于其他 4 個 span 元素,它們的位置屬性,動畫屬性,以及顏色都是相同的:


.bottom,
.top,
.left,
.right {
  position: absolute;
  background-color: #262626;
  transition: transform 0.1s ease-in-out;
}

對于.bottom 和.top,它們的變化方向是水平;對于.left 和.right,它們的變化方向是垂直。


.bottom,
.top {
  left: 0;
  right: 0;
  height: 1px;
  transform: scaleX(0);
}
.left,
.right {
  top: 0;
  bottom: 0;
  width: 1px;
  transform: scaleY(0);
}

下面就是處理延時的特效。動態圖中,動畫按照下、右、上、左的順序依次變化。借助的是 transition-delay 屬性,來實現動畫延遲。


.bottom {
  bottom: 0;
  transform-origin: right center;
}
input:focus ~ .bottom {
  transform: scaleX(1);
  transform-origin: left center;
}
.top {
  top: 0;
  transform-origin: left center;
  transition-delay: 0.2s;
}
input:focus ~ .top {
  transform: scaleX(1);
  transform-origin: right center;
}
.right {
  transform-origin: top center;
  right: 0;
  transition-delay: 0.1s;
}
input:focus ~ .right {
  transform: scaleY(1);
  transform-origin: bottom center;
}
.left {
  left: 0;
  transform-origin: bottom center;
  transition-delay: 0.3s;
}
input:focus ~ .left {
  transform: scaleY(1);
  transform-origin: top center;
}
web前端開發學習Q-q-u-n: 784783012 ,分享開發工具,零基礎,進階視頻教程,希望新手少走彎路

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋中市| 巴马| 通渭县| 南乐县| 合山市| 大竹县| 木兰县| 黄山市| 武功县| 连城县| 毕节市| 上高县| 阜宁县| 万盛区| 辽宁省| 茶陵县| 靖宇县| 青神县| 扶风县| 成安县| 苏尼特左旗| 平凉市| 历史| 永寿县| 奎屯市| 五家渠市| 宜良县| 岳阳县| 望都县| 永平县| 山东省| 仲巴县| 亚东县| 铜鼓县| 离岛区| 兰考县| 穆棱市| 彩票| 安溪县| 崇明县| 阳朔县|