Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

해상도에 따라 애드센스 보임 숨김 처리하기

2013-10-06 by 편리

반은형 테마가 아닐 때는 전혀 신경도 안쓰고 있다가.. 그전에 반응형 테마일 때도 신경은 안 쓰고 있었지만.. 오늘은 어째 테마를 바꾸고 갤럭시 넥서스로 접속해보니 애드센스 광고때문에 레이아웃이 틀어지는 게 유난히 신경이 쓰여서 jQuery 스크립트를 이용해서 해상도에 따라서 보이거나 숨기도록 해봤다. 특별한 것은 없고 컨텐츠가 표시되는 영역 div.entry의 넓이를 구해서 애드센스 사이즈와 비교해 display 속성을 block 또는 none으로 처리하는 것이다.

<script type="text/javascript">
jQuery(function() {
    contentAdjust();

    jQuery(window).resize(function() {
        contentAdjust();
    });
});

function contentAdjust()
{
    var entry_width = jQuery(".entry:first").width();

    jQuery(".entry p img").each(function() {
        var el = jQuery(this);
        var el_width = parseInt(el.attr("width"));

        if(el.data("width") == undefined)
            el.data("width", el_width);

        if(el.data("width") >= entry_width) {
            el.removeAttr("width").removeAttr("height").css("width", "100%");
        } else {
            el.css("width", "");
        }
    });

    if(entry_width < 300) {
        jQuery("#adsense-wrap").css("display", "none");
        jQuery("#adsense-left").css("display", "none");
        jQuery("#adsense-right").css("display", "none");
        jQuery("#adsense-bottom").css("display", "none");
    } else if(entry_width >= 300 && entry_width < 468) {
        jQuery("#adsense-wrap").css("display", "block");
        jQuery("#adsense-right").css("display", "none");
        jQuery("#adsense-bottom").css("display", "none");
    } else if(entry_width >= 468 && entry_width < 600) {
        jQuery("#adsense-wrap").css("display", "block");
        jQuery("#adsense-left").css("display", "block");
        jQuery("#adsense-right").css("display", "none");
        jQuery("#adsense-bottom").css("display", "block");
    } else if(entry_width >= 600) {
        jQuery("#adsense-wrap").css("display", "block");
        jQuery("#adsense-left").css("display", "block");
        jQuery("#adsense-right").css("display", "block");
        jQuery("#adsense-bottom").css("display", "block");
    }
}
</script>

아.. 그와 동시에 포스트 작성하면서 내용에 이미지를 첨부하게 되면 width와 height 속성이 들어가게 되는데 이것 때문에 반응형에서 이미지 사이즈가 변하지 않는 경우가 생겨서 entry 영역의 넓이가 이미지가 width 보다 작으면 width 와 height 속성을 제거하는 스크립트도 추가했다. 혹시 몰라서 이미지의 원래 width 값은 data를 이용해 저장해두도록 했는데.. 그 값을 뭔가에 이용하려고 저장을 한 건데.. 지금 생각해보니 어디다 쓰려고 한건지 모르겠다. ^^;

Post navigation

Previous Post:

워드프레스 테마 Meeta 로 교체

Next Post:

이건 버그인가?

6 Commments

  1. 궁금궁금 says:
    2013-09-24 at 22:19

    제가 찾는게 여기 있었네요!
    근데 어디에 넣어야되는건지 모르겠어요 ㅠ

    Reply
    1. 편리 says:
      2013-09-25 at 00:19

      블로그 방문해 주셔서 감사합니다.

      위 내용은 저의 경우 워드프레스 테마의 footer.php 파일에 추가를
      했습니다. single.php 파일에 추가를 해도 되지만 일반적으로 footer.php
      파일에 추가하는 게 맞다고 생각해서 그렇게 했습니다.

      Reply
      1. 궁금궁금 says:
        2013-09-25 at 03:34

        광고 광고
        이렇게 single.php 에 넣어서 광고도 나오고 크기에 따라 광고가 숨겨지긴 하는데 오른쪽에 있던 사이드바가 아래로 내려가고 본문이 왼쪽으로 쏠리는데 다른 것도 수정해야 하나요?
        좀 더 자세히 알 수 있을까요~? 어렵네요 흑흑

        Reply
        1. 편리 says:
          2013-09-25 at 08:59

          글쎄요.. 제가 사용하는 환경에서는 더 수정해야할 것은 없습니다.
          사이드바의 위치가 변하는 등의 문제는 width 값이 변하거나 해서 그런 것 같은데요
          테마의 css 등을 살펴보신 후 위 스크립트를 수정하셔야할 것 같습니다.

          Reply
  2. 궁금궁금 says:
    2013-09-30 at 16:01

    오늘 다시 시도해서 기능이 작동하긴 하는데
    사이즈를 줄여놓고 새로고침하면 작동은 하는데 실시간으로 웹사이즈를 줄일땐 작동안하네요 ㅠ
    어떤 부분을 그 역할을 하는지 알 수 있을까요?

    Reply
    1. 편리 says:
      2013-09-30 at 21:19

      resize 이벤트를 사용하면 됩니다. 위코드에서는
      jQuery(window).resize(function() {
      contentAdjust();
      });
      부분이 resize 이벤트를 처리하는 부분입니다.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes