js網(wǎng)頁特效-1

一休里、自定義動畫

animation: flash 0.5s alternate infinite
/*自定義動畫*/
@keyframes flash {
    0%{opacity: 0;}
    100%{opacity: 1;}
}
  • 延遲執(zhí)行

start.style.animationDelay = delay + 's';

二徽缚、Underscore-min.js

Underscore封裝了常用的JavaScript對象操作方法,用于提高開發(fā)效率粱腻。我們可以將它單獨(dú)運(yùn)用到任何一個頁面商膊,另外宾濒,Underscore還可以被使用在Node.js運(yùn)行環(huán)境军援。

Underscore中有許多方法在JavaScript1.6中已經(jīng)被納入規(guī)范仅淑,因此在Underscore對象內(nèi)部,會優(yōu)先調(diào)用宿主環(huán)境提供的內(nèi)置方法(如果宿主環(huán)境已經(jīng)實(shí)現(xiàn)了這些方法)胸哥,以此提高函數(shù)的執(zhí)行效率涯竟。

Underscore默認(rèn)使用_(下劃線)來訪問和創(chuàng)建對象。

三空厌、offSet家族

- 3.1 offSet 自己的庐船,用于獲取元素尺寸

  • 網(wǎng)頁可見區(qū)域?qū)挘?document.body.clientWidth;

  • 網(wǎng)頁可見區(qū)域高: document.body.clientHeight;

  • 網(wǎng)頁可見區(qū)域?qū)挘?document.body.offsetWidth (包括邊線的寬);

  • 網(wǎng)頁可見區(qū)域高: document.body.offsetHeight (包括邊線的寬);

  • 網(wǎng)頁正文全文寬: document.body.scrollWidth;

  • 網(wǎng)頁正文全文高: document.body.scrollHeight;

  • 網(wǎng)頁被卷去的高: document.body.scrollTop;

  • 網(wǎng)頁被卷去的左: document.body.scrollLeft;

- 3.2 offsetWidth 和 offsetHeight

  • 獲取對象自身的寬度和高度 ,包括內(nèi)容嘲更、邊框和內(nèi)邊距筐钟,即:offsetWidth = width + border + padding
div{
   width: 300px; border-right:2px solid #ccc; padding:10px;
}
問:div的offsetWidth是多少?
  • 注意:和 div.style.width 的區(qū)別哮内,其只能獲取到行內(nèi)的數(shù)值

- 3.3 offsetLeft 和 offsetTop

  • 距離第一個有定位的父級盒子左邊和上邊的距離盗棵,注意:父級盒子必須要有定位,如果沒有北发,則最終以body為準(zhǔn)纹因!
  • 總結(jié):offsetLeft和offsetTop從從父標(biāo)簽的padding開始計算,不包括border琳拨。即:從子盒子邊框到定位父盒子邊框的距離瞭恰。

- 3.4 offsetParent

  • 返回當(dāng)前對象的父級(帶有定位)盒子,可能是父親狱庇、也可能是爺爺:

  • 如果當(dāng)前元素的父級元素沒有進(jìn)行CSS定位(position:absolute 或 relative)惊畏,則其offsetParent為body; 如果當(dāng)前元素的父級元素中有CSS定位(position:absolute或relative)密任,offsetParent取最近的那個父級元素颜启。

  • 注意:和parentNode的區(qū)別?(其只找親生父親)

  • 3.5 offsetXXX 和 style.XXX的區(qū)別

  • 用offsetLeft和style.left來分析浪讳,其他的以此類推:

a) style.left只能獲取行內(nèi)的缰盏,而offsetLeft則可以獲取到所有的;
b) offsetLeft 可以返回沒有定位盒子距離左側(cè)的位置淹遵;而style.left不可以口猜,其只能返回有定位盒子的left;
c) offsetLeft 返回的是數(shù)字,而 style.left 返回的是字符串透揣,除了數(shù)字外還帶有單位:px;
   注意:可以用parseInt進(jìn)行轉(zhuǎn)化济炎;比如:styleLeft='300px' ---> parseInt(styleLft) ---> 300
d) offsetLeft是只讀的,而style.left是可讀寫辐真;    
e) 如果沒有給 當(dāng)前 元素指定過 top 樣式须尚,則 style.top 返回的是空字符串崖堤。
  • 案例----彈性菜單效果.html

  • 案例----如影隨形效果.html

四、JS的事件對象 - event

  • 4.1 在之前我們已經(jīng)接觸過很多事件恨闪,比如:onclick倘感,ondbclick,onfocus, onmousedown咙咽,onmousemove...
btn.onclick = function(){
       // 代碼塊  
   }

   btn.onclick = function(event){  // event就是當(dāng)前事件的對象,簡稱事件對象

   }

只要觸發(fā)DOM上的某個事件時淤年,會產(chǎn)生一個事件對象event钧敞,這個對象中包含著所有與事件有關(guān)的信息。所有瀏覽器都支持event對象麸粮,但支持的方式不同溉苛。比如:IE6-8只能通過window.event獲取事件對象,而其他的則可以直接獲取弄诲。通常愚战,考慮兼容性的寫法:

var event = event || window.event;

4.2 event 常見屬性

image.png

4.3 pageX/pageY、screenX/screenY齐遵、clientX/clientY的區(qū)別

  • screenX/screenY 是以屏幕為基準(zhǔn)進(jìn)行測量寂玲,即:當(dāng)前元素距離屏幕的尺寸

  • pageX 和 pageY 是以當(dāng)前文檔(絕對定位)為基準(zhǔn),不適用于IE6-8;

  • clientX 和 clientY 是以當(dāng)前可視區(qū)域?yàn)榛鶞?zhǔn)梗摇,類似于固定定位拓哟。

4.4 JS常見事件

  • onmousemove 當(dāng)鼠標(biāo)在當(dāng)前元素中移動的時候觸發(fā),鼠標(biāo)只要移動一像素就會執(zhí)行的事件伶授,頻率非常高断序;

  • onmouseover 當(dāng)鼠標(biāo)進(jìn)入當(dāng)前元素時觸發(fā),只會被觸發(fā)一次

  • onmouseup 當(dāng)鼠標(biāo)彈起的時候觸發(fā)

  • onmousedown 當(dāng)鼠標(biāo)按下的時候觸發(fā)

4.5 防止拖動時選中內(nèi)容

  • 防止拖拽的時候選中拖拽區(qū)域中的內(nèi)容糜烹,代碼如下:

  • window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

  • 案例----商品放大效果.html

  • 案例----滾動條效果.html

五违诗、代碼的執(zhí)行-同步和異步

5.1 同步執(zhí)行

  • 下一行代碼的執(zhí)行必須等待上一個行代碼執(zhí)行完畢再執(zhí)行;或者說上一行未執(zhí)行完畢下一行不能執(zhí)行疮蹦。

5.2 異步執(zhí)行

  • 代碼各自執(zhí)行各自的诸迟,互相獨(dú)立。

5.3 初始化執(zhí)行

  • 網(wǎng)頁一發(fā)布就執(zhí)行的代碼稱之為初始化中執(zhí)行挚币;初始化也是同步執(zhí)行的一種亮蒋。

5.4 總結(jié)

  • 目前我們學(xué)習(xí)的代碼中有哪些是同步的哪些是異步的?主要關(guān)注異步就可以妆毕,所有被鼠標(biāo)觸發(fā)的事件都可以認(rèn)為是異步慎玖,互相獨(dú)立。還有一個需要注意的就是定時器中的代碼都是異步的笛粘,也是互相獨(dú)立趁怔。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末湿硝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子润努,更是在濱河造成了極大的恐慌关斜,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铺浇,死亡現(xiàn)場離奇詭異痢畜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鳍侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門丁稀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倚聚,你說我怎么就攤上這事线衫。” “怎么了惑折?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵授账,是天一觀的道長。 經(jīng)常有香客問我惨驶,道長白热,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任敞咧,我火速辦了婚禮棘捣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘休建。我一直安慰自己乍恐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布测砂。 她就那樣靜靜地躺著茵烈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砌些。 梳的紋絲不亂的頭發(fā)上呜投,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機(jī)與錄音存璃,去河邊找鬼仑荐。 笑死,一個胖子當(dāng)著我的面吹牛纵东,可吹牛的內(nèi)容都是我干的粘招。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼偎球,長吁一口氣:“原來是場噩夢啊……” “哼洒扎!你這毒婦竟也來了辑甜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤袍冷,失蹤者是張志新(化名)和其女友劉穎磷醋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胡诗,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邓线,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了乃戈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褂痰。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖症虑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情归薛,我是刑警寧澤谍憔,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站主籍,受9級特大地震影響习贫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜千元,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一苫昌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幸海,春花似錦祟身、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挡篓,卻和暖如春婉陷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背官研。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工秽澳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戏羽。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓担神,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛛壳。 傳聞我的和親對象是個殘疾皇子杏瞻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一所刀、自定義動畫 延遲執(zhí)行start.style.animationDelay = delay + 's'; 二、U...
    LIT樂言閱讀 565評論 0 2
  • 本文是針對剛學(xué)編程的小白,都是一些基礎(chǔ)知識,如果想了解更多深層一點(diǎn)的東西,歡迎移步本人博客!! 博客地址 點(diǎn)擊跳轉(zhuǎn)...
    西巴擼閱讀 557評論 0 2
  • 一捞挥、自定義動畫 animation: flash 0.5s alternate infinite; @keyfra...
    一葉一生一葉知秋閱讀 325評論 0 0
  • offset家族三大家族和一個事件對象三大家族(offset/scroll/client)事件對象/event ...
    Yuann閱讀 948評論 0 5
  • 20170511-發(fā)發(fā)評熊逸書院:在現(xiàn)代社會中浮创,我們碰到與己意見相反的人,會激烈的控訴砌函,那是因?yàn)槲覀兊呢?fù)面反射在他...
    貓書的思考泡泡閱讀 226評論 0 0