LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【JavaScript】巧用before和after偽元素制作動畫特效

admin
2023年7月7日 10:52 本文熱度 2093

為什么要整理這篇文章,是因?yàn)樽罱粋€(gè)項(xiàng)目用到了:before:after這兩個(gè)偽元素,結(jié)合css3transform相關(guān)屬性實(shí)現(xiàn)鼠標(biāo)懸停在圖片上出現(xiàn)邊框線條動畫特效。在CSS 中:before 和 :after這兩個(gè)偽類元素說不上常用 ,只是偶爾會被人用來添加些自定義格式什么的,但是它們的功用不僅于此。接下來就為大家介紹這兩個(gè)偽類元素。

一、基本概念

1.他們都是CSS偽元素,與:hover/:active等偽類不一樣。
2.:before:after偽元素是在CSS2中提出來的,所以兼容性可能到IE8了。
3.::before::afterCSS3中的寫法,為了將偽類和偽元素區(qū)分開。但是平時(shí)為了兼容性,還是會用一個(gè)冒號的寫法。

二、基本用法

p:after{}
img:before{}

這兩個(gè)偽類下特有的屬性 content ,用于在 CSS 渲染中向元素邏輯上的頭部或尾部添加內(nèi)容。注意這些添加不會改變文檔內(nèi)容,不會出現(xiàn)在 DOM 中,不可復(fù)制,僅僅是在 CSS 渲染層加入。比較有用的是以下幾個(gè)值:

[String] – 使用引號包括一段字符串,將會向元素內(nèi)容中添加字符串。示例: 

a:after { content: "↗"; }

attr() – 調(diào)用當(dāng)前元素的屬性,可以方便的比如將圖片的 Alt 提示文字或者鏈接的 Href 地址顯示出來。示例:

a:after { content:"(" attr(href) ")"; }

url() / uri() – 用于引用媒體文件。示例: 

h1::before { content: url(logo.png); }

counter() – 調(diào)用計(jì)數(shù)器,可以不使用列表元素實(shí)現(xiàn)序號功能。具體請參見 counter-increment 和 counter-reset 屬性的用法。示例:

h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " }

三、進(jìn)階用法

清除浮動是一個(gè)時(shí)常會遇到的問題,不少人的解決辦法是添加一個(gè)空的 div 應(yīng)用 clear:both; 屬性?,F(xiàn)在,無需增加沒有意義的元素,僅需要以下樣式即可在元素尾部自動清除浮動:

.clear-fix { *overflow: hidden; *zoom: 1; }
.clear-fix:after { display: table; content: ""; width: 0; clear: both; }

制作三角的方法:

我們在寫聊天氣泡效果時(shí)會用到偽類元素

.c-main:before{
    content: '';
    border-top: 9px solid transparent;/*方框上部分背景顏色為透明*/
    border-bottom: 9px solid transparent;/*方框下部分背景為透明*/
    border-right: 9px solid #eee;/*箭頭背景顏色*/
    position: absolute;/*絕對定位1*/
    top: 25px;/*距離頂部位置偏移量2*/
    left: -9px;/*距離左邊位置偏移量3*/ /*123都是控制顯示位置的*/
}
 .c-main:after{
    content: '';
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 7px solid #fbfdfb;/*箭頭背景顏色,覆蓋前面的#eee顏色,使其顏色與整體顏色一致*/
    position: absolute;
    top: 27px;
    left: -7px;
}

定位都是其次的,主要是看border設(shè)置。一邊有顏色,其他三邊透明就可以實(shí)現(xiàn)。

四、特效妙用

除了簡單的添加字符,配合 CSS 強(qiáng)大的定位和特效特性,完全可以達(dá)到給簡單的元素另外附加最多兩個(gè)容器的效果。有一點(diǎn)需要注意的是,如果不需要內(nèi)容僅配合樣式屬性做出效果,內(nèi)容屬性也不能為空,即 content:”” 。否則,其他的樣式屬性一概不會生效。接下來我就以我最近項(xiàng)目中特效為例做演示。

鼠標(biāo)移上圖片懸停不懂出現(xiàn)邊框特效:

HTML代碼

<div class="strength grWidth hidden">
    <div class="homeTitle">
        <h2>前端博客</h2>
    </div>
    <ul class="strengthMain">
        <li><a href="https://mybj123.com/"><img src="xiank.jpg" alt="專業(yè)團(tuán)隊(duì)"><div class="font"><h3>碼云筆記</h3><p>歡迎訪問碼云筆記,這里有豐富的前端知識,但不局限于前端!</p></div></a></li>
    </ul>
</div>

CSS特效代碼

body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}
fieldset,img{border:0;}
img{vertical-align:middle;}
ol,ul,li{list-style-type:none;}
table{border-collapse:collapse;border-spacing:0;}
button,input,select,textarea{font-size:13px;font-family:inherit;margin:0;outline:none;resize:none;border:none;}
.clearfix:after {clear: both; content: "."; display: block; height: 0; overflow: hidden; visibility: hidden; }
.clearfix { zoom:1; }
html{verflow:-Scroll;overflow-x:hidden;zoom:1;overflow-y:scroll;overflow:-moz-scrollbars-vertical;}
body{color:#1b1f2b;line-height:24px;font-family:"微軟雅黑","宋體", Arial, Helvetica, sans-serif; }
a{color:#1b1f2b;text-decoration:none;outline:none;blr:expression(this.onFocus=this.blur());}
a:hover{color:#e5000c;text-decoration:none;}:focus{outline:none;}
/* CSS活動的公共樣式 */
.fl{float:left;}
.fr{float:right;}
.gr_center{text-align:center;}
.grWidth{width:1200px; margin:0 auto;}
.mb10{margin-bottom:10px;}
.mb15{margin-bottom:15px;}
.center{text-align:center;}
.hidden{overflow:hidden;}
.nor{font-weight:normal;}
.homeTitle {
text-align: center;
margin-bottom: 35px;
text-transform: uppercase;
line-height: 40px;
}
.homeTitle h2 {
font-size: 36px;
color: #FF0000;
font-weight: normal;
}
.strength {
padding-top: 60px;
}
.strengthMain {
height: ;
overflow: hidden;
}
.strengthMain li {
float: left;
width: 600px;
height: 330px;
overflow: hidden;
background: #000;
position: relative;
}
.strengthMain li img {
width: 600px;
height: 330px;
transition: all .5s;
opacity: 0.4;
filter: alpha(opacity=40);
}
.strengthMain li .font {
width: 600px;
height: 205px;
top: 0;
left: 0;
position: absolute;
color: #fff;
text-align: center;
font-size: 16px;
padding-top: 125px;
}
.strengthMain li .font h3 {
font-size: 36px;
color: #fff;
font-weight: normal;
margin-bottom: 20px;
line-height: 36px;
}
.strengthMain li:hover img {
transform: scale(1.05, 1.05);
}
.strengthMain li .font::before,
.strengthMain li .font::after {
position: absolute;
content: '';
opacity: 0;
transition: all 0.5s;
}
.strengthMain li .font::before {
top: 25px;
right: 15px;
bottom: 25px;
left: 15px;
border-top: 1px solid #fff;
border-bottom: 1px solid #fff;
transform: scale(0, 1);
-webkit-transform-origin: 0 0;
transform-origin: 0 0
}
.strengthMain li .font::after {
top: 15px;
right: 25px;
bottom: 15px;
left: 25px;
border-right: 1px solid #fff;
border-left: 1px solid #fff;
transform: scale(1, 0);
transform-origin: 100% 0;
}
.strengthMain li:hover .font::before,
.strengthMain li:hover .font::after {
opacity: 1;
transform: scale(1);
transition: all 0.5s;
}

結(jié)束語

以上代碼親測可用,用:before 和:after偽類結(jié)合更多CSS3強(qiáng)大的特性,還可以完成非常多有意思的特效和 Hack ,這里僅是拋磚引玉,更多特效還需你去實(shí)現(xiàn),更多精彩內(nèi)容持續(xù)更新,感謝閱讀!


該文章在 2023/7/7 10:52:53 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
婷婷中文字幕一区二区三区 | 婷婷琪琪在线中文字幕 | 在线播放一区二区三区 | 日韩中文字幕理论在线 | 日韩精品熟女一区二区 | 亚洲人成高清在线播放 |