2013-08-28 1 views
1

그래서 기본적으로 클라이언트 요청시 미디어 쿼리를 사용하여 반응적으로 웹 사이트를 프로그래밍하기 시작했습니다. 놀랍게도 내 클라이언트가 웹 사이트가 IE7에서 반응 적이어야한다는 것을 알았을 때?!?!?! 그래서 jQuery 플러그인을 개발했습니다.이 플러그인을 사용하면 중단 점을 플러그인 한 다음 사용중인 장치를 나타내는 클래스 또는 ID를 본문에 추가 할 수 있습니다. 여기에 플러그인 코드입니다 : 당신이 기본값에게 그들이 그냥 플러그인을 인스턴스화하는 방법을 떠날 경우에 따라서 본질적으로반응 형 웹 사이트의 경우 미디어 쿼리 대신 접두사 ID 태그를 사용하는 것이 좋지 않습니까?

(function ($) { 

    $.fn.windowDimensions = function(options) { 

     var config = $.extend({ 
      attr    :   'id', 
      largeDesktop  :   1600, 
      smallDesktop  :   1024, 
      tablet    :   768, 
      largePhone   :   640, 
      smallPhone   :   480, 
      smallPhoneName  :   'smallPhone', 
      largePhoneName  :   'largePhone', 
      tabletName   :   'tablet', 
      smallDesktopName :   'smallDesktop', 
      largeDesktopName :   'largeDesktop' 
     }, options); 

     var w = 0, className = ''; 

     $(this).on('resize ready', function() { 

      w = $(this).width(); 

      if(w <= config.smallPhone) { 
       className = config.smallPhoneName; 
      } else if(w <= config.largePhone && w > config.smallPhone) { 
       className = config.largePhoneName; 
      } else if(w <= config.tablet && w > config.largePhone) { 
       className = config.tabletName; 
      } else if(w <= config.smallDesktop && w > config.tablet) { 
       className = config.smallDesktopName; 
      } else { 
       className = config.largeDesktopName; 
      } 

      $('body').attr(config.attr, className); 
     }); 

    }; 

}) (jQuery); 

, 그것은 iPad에서 body 태그에 id="tablet"을 적용됩니다. 나는 이것이 아마 최고의이나 일을하는 기존의 방법이 아니다 알고

.wrap { ... } 
#tablet .wrap { ... } 
#largPhone .wrap { ... } 
#smallPhone .wrap { ... } 

을하지만 난 어떤 다른 방법을 알고하지 않습니다 내가 요소의 스타일을 CSS를 사용하여 거기에서 그 같이 보일 것이다 이게 더 잘하는거야. 이 방법이나보다 최적의 솔루션에 접근하는 더 좋은 방법이 있습니까?

답변