亚洲欧美成人综合一区_国产精品一区二区无码_亚洲风情偷拍区_成?人免费无码视频在线看

在線客服與您一對(duì)一交流
當(dāng)前位置: 主頁 > 行業(yè)新聞 > IT技術(shù) >

classie.js有什么作用?讓添加、刪除和檢查類class更容易

  為什么要用classie.js

  classie是一個(gè) awesome,lightweight script。 用來添加,移除,toggleDom元素的類。那為什么不用jquery呢, 因?yàn)閖query相對(duì)于這幾個(gè)簡(jiǎn)單的功能太冗余了(just too bloated for your needs)。 classie.js 只有簡(jiǎn)單的81行,去掉注釋,僅有51行, 我們現(xiàn)在就來分析源碼。

  怎么用

  classie只有4個(gè)方法,分別是:

  hasClass

  addClass

  removeClass

  toggleClass

  顧名思義。 使用classie只需要在js代碼中,直接使用classie.hasClass等方法即可。方法中只需要傳遞兩個(gè)參數(shù),第一個(gè)是Element元素,第二個(gè)是需要操作的class名稱。
 

  Classie.js是一個(gè)功能強(qiáng)大并且非常輕量級(jí)的腳本,它可以讓你添加、刪除、切換以及檢查DOM中的類變的非常容易。

  很多JavaScript嚴(yán)重的核心是圍繞著類的添加與刪除,今天,CSS3 transitions, transforms, 以及animations開始流行,很多非??岬奶匦Э梢酝ㄟ^簡(jiǎn)單的添加一個(gè)類到一個(gè)元素上創(chuàng)立。比如通過觸摸如何將圖片過渡到視圖區(qū)??jī)H僅是給圖片添加幾個(gè)transition屬性,關(guān)聯(lián)觸摸類擁有transform屬性,通過JavaScript觸摸事件添加給圖片添加類,這樣就完成了一個(gè)流暢的、漂亮的CSS3 transition.

  強(qiáng)大的Classie.js

  如果沒有一個(gè)像jQuery這樣的庫(kù)的話那么想要添加、刪除類將不是一件輕松的事,但是很多時(shí)候JS庫(kù)對(duì)你的需求來說往往太過臃腫。我在很多自己需要使用庫(kù)的項(xiàng)目里,我發(fā)現(xiàn)僅僅是需要用到類的切換/檢查的功能。進(jìn)入 classie.js, 一個(gè)可強(qiáng)大的超級(jí)輕量級(jí)腳本, 它允許您很容易添加、刪除、切換,和檢查DOM中的類。 Classie.js 帶給我們奇妙的和簡(jiǎn)單的實(shí)用性, 不會(huì)讓我們的腳本變得臃腫。畢竟它僅僅只有82行代碼, 1.872 kb大小。下面是一個(gè)簡(jiǎn)單的classie.js實(shí)例 :

  在上面的例子中, el代表的是我們要查詢的元素。我們檢查是否它有一個(gè)類sweet。如果有, 則刪除它。 如果沒有, 就添加它。在一個(gè)臃腫的庫(kù)的世界里這樣的小腳本現(xiàn)在絕對(duì)正確的方式。

  源碼分析

  首先介紹一下classList屬性, classList是HTML5為javascipt的class操作新增的API。之前在操作類名時(shí),需要通過className屬性,className屬性是一個(gè)字符串,使用className操作類名會(huì)涉及到很多字符串處理,很麻煩。新增的classList屬性簡(jiǎn)化了這些操作。下面的代碼就是使用classList屬性進(jìn)行了class的操作。

  if ( 'classList' in document.documentElement ) {

  hasClass = function( elem, c ) {

  return elem.classList.contains( c );

  };

  addClass = function( elem, c ) {

  elem.classList.add( c );

  };

  removeClass = function( elem, c ) {

  elem.classList.remove( c );

  };

  }

  支持className屬性的瀏覽器有Firefox3.6+和Chrome。所以在低版本中使用了另外一種寫法。

  else {

  hasClass = function( elem, c ) {

  return classReg( c ).test( elem.className );

  };

  addClass = function( elem, c ) {

  if ( !hasClass( elem, c ) ) {

  elem.className = elem.className + ' ' + c;

  }

  };

  removeClass = function( elem, c ) {

  elem.className = elem.className.replace( classReg( c ), ' ' );

  };

  }

  其中classReg使用如下方法找到class :

  function classReg( className ) {

  return new RegExp("(^|\s+)" + className + "(\s+|$)");

  }

  這里使用的是對(duì)className屬性進(jìn)行字符串處理。

  最后加上toggleClass。

  function toggleClass( elem, c ) {

  var fn = hasClass( elem, c ) ? removeClass : addClass;

  fn( elem, c );

  }

相關(guān)文章:

  • 帝國(guó)CMS是什么程序 帝國(guó)CMS是一套開源的靜態(tài)頁面程序,憑借超高的擴(kuò)展性,很多知名的新聞?wù)军c(diǎn)、行業(yè)站點(diǎn)都是應(yīng)用的帝國(guó)CMS后端。因?yàn)榈蹏?guó)CMS和dedecms一樣都是生成靜態(tài)頁面的,所以非常利于...

  • 域名解析DNS分為顯性URL和隱形URL,顯性URL和隱形URL有什么區(qū)別?隱形URL和顯性URL哪個(gè)更有利于SEO?顯性URL相當(dāng)于域名了302重定向,隱形URL使用iframe框架技術(shù)隱藏真實(shí)目標(biāo)地址,顯性URL更有利于...

  • 在常見的CMS系統(tǒng)中,我對(duì)dedecms算是比較熟悉的,自己網(wǎng)站用的也是這個(gè)系統(tǒng)。系統(tǒng)功能強(qiáng)大使用靈活,相信這也是它受到大多數(shù)中小站長(zhǎng)青睞的原因。 再好的系統(tǒng)也有照顧不周的地方,很多站...

  • 這篇文章主要為大家詳細(xì)介紹了dedecms后臺(tái)增加php導(dǎo)出excel功能實(shí)現(xiàn)辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。 不少朋友希望織夢(mèng)的后臺(tái)...

  • 第一次使用的插件是 pdfobject.js 百度網(wǎng)盤下載地址:http://pan.baidu.com/s/1kUPhYdT 加載 script src=/style/js/pdfobject.js /script script type=text/javascript window.onload = function (){ var success = new PDFObject({ url: pdf文件地...

  • 網(wǎng)上有一種方法是copy+unlink來移動(dòng)文件,但是遇到大文件時(shí)會(huì)消耗大量時(shí)間,對(duì)性能不怎么友好,可以使用rename()來移動(dòng)文件,速度非???關(guān)于rename()函數(shù) bool rename ( string $oldname , string $newname...

  • 基于我們公司可選的幾種推廣方式: 一、關(guān)鍵詞優(yōu)化排名推廣(推薦) 指定關(guān)鍵詞推廣,按天付費(fèi),推廣我們業(yè)務(wù)中最重要的一些關(guān)鍵詞,達(dá)到百度首頁才收費(fèi),大概一個(gè)關(guān)鍵詞10元/天左右。...

  • 插件介紹 wordpress程序網(wǎng)站在發(fā)布文章時(shí)可以給每一片文章添加與之相關(guān)的TAG標(biāo)簽,對(duì)于TAG標(biāo)簽可以生成很多頁面,增加搜索引擎對(duì)內(nèi)容的抓取量。 WP Auto Keywords插件就是一款能自動(dòng)給文章添加...

  • 5.7 生成列表頁 改動(dòng) include/arc.listview.class.php 1.先設(shè)置 關(guān)閉副欄目(在系統(tǒng)----系統(tǒng)基本參數(shù)性能選項(xiàng)里) 2.一般網(wǎng)站不需要 欄目交叉 交叉 所以 找到94行注釋掉: //獲得交叉欄目ID /*if($this-Type...

  • 使用preg_replace將刪除所有空白(包括制表符等) $string = user na me $string = preg_replace(/\s+/, , $string); echo $string; // username preg_replace(/\s/u, ,$string) u (PCRE8) 此修正符打開一個(gè)與perl不兼容的附加功能. 模式...

  • 公司:西安蟠龍網(wǎng)絡(luò)科技有限公司
  • 聯(lián)系人:張經(jīng)理
  • 手機(jī)/微信:
  • Q Q: 點(diǎn)擊這里給我發(fā)消息
  • 地址:西安市雁塔區(qū)唐延南路11號(hào)逸翠園i都會(huì)