Responsive Javascript 是什么?

  簡(jiǎn)單來(lái)說(shuō)就是可以根據(jù)瀏覽器的狀態(tài)做出響應(yīng)。響應(yīng)包括對(duì)視窗大小的反應(yīng),根據(jù)你設(shè)備是否支持觸摸事件或地理定位功能來(lái)決定是否顯示特定內(nèi)容,不一而足。

  什么是瀏覽器APIs

  瀏覽器提供了兩個(gè)關(guān)鍵的APIs來(lái)讓我們可以添加Responsive Javascript到站點(diǎn),那就是 ‘window.matchMedia’ 和’window.onresize’。

  window.matchMedia

  我們可以使用window.matchMedia API 來(lái)檢測(cè)特定的媒體并為之添加一個(gè)事件監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)matched或unmatched事件。這樣做的好處就是可以在我們的javascript中復(fù)用媒體檢測(cè)代碼,缺點(diǎn)是我們只能檢測(cè)有限的那些我們想檢測(cè)的媒體。

//Prepare a MediaQueryList
var mql = window.matchMedia("(max-width:768px)");

//Add a listener to the MediaQueryList
mql.addListener(function(e){
        if(e.matches){
                console.log('enter mobile');
        }
});

  方法如下:

  瀏覽器支持

grfrgerg40222131111

  polyfill提供了兼容古老瀏覽器的方法

  window.onresize

  當(dāng)用戶(hù)改變?yōu)g覽器視窗大小的時(shí)候會(huì)觸發(fā)這個(gè)方法。我們就是靠這個(gè)方法來(lái)提供不同的響應(yīng)javascript。

  這個(gè)window.onresize方法由來(lái)已久,大家以前肯定也用過(guò),然而Responsive Javascript就是使用這個(gè)簡(jiǎn)單方法來(lái)處理不同的瀏覽器狀態(tài)。

var resizeMethod = function(){
    if (document.body.clientWidth < 768) {
        console.log('mobile');
    }
};

//Attach event for resizing
window.addEventListener("resize", resizeMethod, true);

  方法如下:

  瀏覽器支持

fdgdfgdfg222131512

  有現(xiàn)成的庫(kù)嗎?

  SimpleStateManager

  SimpleStateManager是一個(gè)狀態(tài)響應(yīng)管理器,他可以根據(jù)你的站點(diǎn)的不同狀態(tài)響應(yīng)出不同的Javascript,允許你根據(jù)需求定義任意多的站點(diǎn)狀態(tài),并且你可以為每一個(gè)站點(diǎn)狀態(tài)建立獨(dú)立的Enter,Leave,Resize事件

  主要功能

  方法如下:

  示例站點(diǎn):

  瀏覽器支持

dgdfgdfgdf0222131819

  enquire.js

  enquire.js庫(kù)旨在根據(jù)CSS media queries響應(yīng)不同的Javascript。他根據(jù)你寫(xiě)的CSS中media queries來(lái)決定Javascript什么時(shí)候可用,什么時(shí)候禁用

  主要功能:

  示例站點(diǎn):

  瀏覽器支持

efefef222145326

  polyfill提供了兼容古老瀏覽器的方法

  yepnope.js

  yepnope.js是一個(gè)根據(jù)條件異步資源加載器。他可以根據(jù)用戶(hù)需要加載特定腳本

  調(diào)用示例:

yepnope({
  test : Modernizr.geolocation,
  yep  : 'normal.js',
  nope : ['polyfill.js', 'wrapper.js']
});

  瀏覽器支持

fbfghgfh20140222145021

  Modernizr

  Modernizr主要是檢測(cè)用戶(hù)瀏覽器中的HTML5和CSS3功能

  鮮為人知的功能就是他可以使用Modernizr.mq(str)來(lái)檢測(cè)媒體

  調(diào)用示例:

//Returns true or false
Modernizr.mq('only all and (max-width: 767px)');

  瀏覽器支持

fdgdgrg0140222145622

  原文鏈接: Responsive Javascript   作者:@蔡volvo蔡

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀(guān)的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。