Back to Question Center
0

사이트 고정 : 회전 오버레이 아이콘            사이트 고정 : 회전 오버레이 아이콘 관련 주제 : SEO & SEMContent MarketingAgile DevelopmentMarketing 소셜 세미트

1 answers:
사이트 고정 : 회전 오버레이 아이콘

필자는 IE9의 Site Semalt API를 사용하여 오버레이 아이콘을 구현하여 사용자 알림을 강화하는 방법에 대해 설명했습니다. 데모는 특정 이벤트 (예 :받은 편지함의 메시지)가 언제 발생했는지 나타 내기 위해 숫자 아이콘을 표시하는 방법에 중점을 둡니다.

사이트 고정 : 회전 오버레이 아이콘사이트 고정 : 회전 오버레이 아이콘 관련 주제 :
SEO 및 SEMContent MarketingAgile 개발 마케팅 사회 세미나

사용자가 확인할 수있는 보류중인 정보가 있음을 알리는 아주 좋은 방법입니다. 그러나 사이트에서 여러 유형의 알림을 제공하면 어떻게됩니까? 오늘날 많은 기능을 제공하는 웹 사이트에서는 친구 요청 및 이벤트 알리미에서 새로운 메시지 및 게임 초대에 이르기까지 다양한 유형의 알림을 제공하는 것이 일반적입니다 - купить наполнитель в кресло мешок.

다중 오버레이 아이콘 회전

Site Pinning API의 장점은 매우 유연하고 일부 Semalt 마법을 통해 다양한 서비스에 대한 여러 오버레이 아이콘을 쉽게 표시 할 수 있다는 것입니다. 이 데모에서는 사용자에게 보류중인 메시지, 요청 및 작업을 알리는 3 가지 오버레이 아이콘을 통해 회전하려고합니다.

이전과 마찬가지로 x 아이콘 편집기를 사용하여 오버레이 아이콘을 만들어 예술적 재능을 발휘해야했습니다. 나는 각각 5 개를 만들었고 처음 세 가지 모습을 보았습니다.

사이트 고정 : 회전 오버레이 아이콘사이트 고정 : 회전 오버레이 아이콘 관련 주제 :
SEO 및 SEMContent MarketingAgile 개발 마케팅 사회 세미나

가져 오기 당 여러 비트의 데이터를 수용하기 위해 코드가 마지막 데모에서 약간 변경되었습니다. 이전에, 필자는 이번 데모에서 각 알림 유형에 대해 하나씩 Semalt가 반환하는 한 개의 데이터 만 가져 왔습니다.

  myPin. "메시지", "ntype": "M", "num": 2}, { "레이블": "요청", "ntype": "R", "num": 1}, { "label": "작업", "ntype": "A", "num": 3}]}
{ "label": "요청", "ntype": "R", "num": { "label": "메시지", "ntype" : 5}, { "label": "작업", "ntype": "A", "num": 2}]}
{ "label": "요청", "ntype": "R", "num": { "label": "메시지", "ntype" : 1}, { "label": "작업", "ntype": "A", "num": 4}]}
]));  

다시 말해, 메소드 getData 는 원격 데이터를 모의 합니다. 위의 데이터를 살펴보면 세 가지 고유 한 데이터 비트를 가져 오는 과정을 시뮬레이션 할 수 있습니다. 이것이 setInterval을 사용하여 매 10 초마다 메서드를 호출하는 이유입니다. 이를 통해 일정 기간 동안 알림이 어떻게 표시되는지 확인할 수 있습니다.

  setInterval (function    {myPin. getData   }, 10000);  

다음으로 변경된 것은 타이머를 사용하여 오버레이 아이콘을 렌더링하는 동안 약간의 지연을 허용하는 것입니다. setTimeout 을 사용하면 다음 아이콘으로 회전하기 전에 개별 오버레이 아이콘을 사용자가 볼 수 있도록 충분한 지연 시간을 제공합니다. 이 지연이 없으면 순환 게재가 너무 빨리되어 유용한 알림을 제공 할 수 없습니다. 다음 이미지를 보면 알림이 어떻게 보이는지 알 수 있습니다.

사이트 고정 : 회전 오버레이 아이콘사이트 고정 : 회전 오버레이 아이콘 관련 주제 :
SEO 및 SEMContent MarketingAgile 개발 마케팅 사회 세미나

이는 다음 코드를 통해 수행됩니다.

  // 현재 데이터 세트를 가져옵니다 currData = this. dataBin [this. currIndex ++] * /
for (var i = 0; i   

무슨 일이 일어나고 있는지를 살피십시오. 첫 번째 줄에서는 모든 알림 정보 (메시지, 요청 및 작업)를 보유하고있는 현재 데이터 집합을 수집합니다. 그 데이터는 다음과 같습니다 :

  [{ "label": "메시지", "ntype": "M", "num": 2},
{ "label": "요청", "ntype": "R", "num": 1},
{ "label": "작업", "ntype": "A", "num": 3}]  

각 데이터 그룹을 반복하고 약 1 초 간격으로 dispOverlay 를 호출 할 setTimeout 을 사용하여 타이머를 할당합니다. 그것은 앞서 언급 한 점진적 아이콘 렌더링 지연을 허용하는 마법 코드입니다. 예상되는 기능은 "메시지"아이콘이 1 초 후에 "요청"아이콘이 표시되고 마지막으로 "작업"아이콘이 표시된다는 것입니다.

이제 setTimeout 을 래핑하는 익명의 함수가 왜 있는지 궁금 할 것입니다. 그것은 내가 데이터의 현재 인덱스를 잡는 데 사용하는 변수 'i'가 마지막 인덱스 값으로 만 업데이트되는 일반적인 범위 지정 문제를 야기 할 수있는 setTimeout 내에 클로저가 있기 때문입니다. James Padolsey는이 문제를 해결할 수 있도록 John David Dalton에게 감사의 말을 전합니다.

마지막 변경은 dispOverlay 에서 어떤 오버레이 아이콘을 표시해야하는지 결정해야합니다. 세 가지 유형의 알림이 있으므로 유형을 확인하고 올바른 아이콘 이름을 작성하기위한 조건문이 필요합니다.

  if (theData. ntype == "M") {
oImg = "images / messages-"+ theData. num + ". ico";
} else if (theData. ntype == "R") {
oImg = "images / requests-"+ theData. num + ". ico";
} else if (theData. ntype == "A") {
oImg = "images / actions-"+ theData. num + ". ico";
}  

이것은 유형을 확인하고 해당 유형에 대해 보류중인 통지의 유형 및 수에 따라 오른쪽 아이콘을 제공합니다.

데모 및 최종 코드

IE9에서 다음과 같이 데모를 확인할 수 있습니다.

http : // reybango. co.kr / demos / sprotate / index HTML

페이지가 렌더링되면 탭을 작업 표시 줄로 끌어서 고정하십시오. 새로 고정 된 사이트에 새 창이 나타납니다. 다음으로 작업 표시 줄에 오버레이 아이콘이 나타나고 10 초마다 순환하기 시작해야합니다.

전체 소스 코드를 써라. 여기에서 모든 것을 다운로드 할 수도 있습니다.

    
    
   고정 된 사이트 - 회전 오버레이 아이콘  </ title> 
 <link rel = "바로 가기 아이콘"type = "image / ico"href = "favicon. ico"/>  <meta name = "application-name"content = "고정 사이트 테스트"/> 
 <meta name = "msapplication-starturl"content = "http : // reybango.com / demos / sprotate / index.html"/> 
 <meta name = "msapplication-navbutton-color"content = "# 3480C0"/>  <meta name = "msapplication-window"content = "width = 1024; height = 768"/> 
 <meta name = "msapplication-tooltip"content = "고정 된 사이트 API 테스트"/> 
 <스타일> 몸 {배경 : 없음 반복 스크롤 0 0 # 4492CE;글꼴 : 440 % / 1 4em 'Segoe Light', Segoe, 'Segoe UI', 'Meiryo Regular', 'Meiryo', sans-serif;color : # EDEFF4;
} </ style>  </ head>  <body>  <div> 
 <h1>  고정 된 사이트  </ h1>  <p>  회전 오버레이 아이콘  </p>  </div>  <script> var myData = [];var myPin = {currIndex : 0,dataBin : [],getData : function  <span class="f-c-white l-mr3">  {var idx = 0, currData = [], cntr = 0, theData;// 현재 페이지가 고정 된 사이트로 시작되었는지 여부를 결정합니다 if (window. external. msIsSiteMode  <span class="f-c-white l-mr3"> ) {// 현재 데이터 세트를 가져옵니다 currData = this. dataBin [this. currIndex ++]. 데이터;/ * 새 오버레이 아이콘을 표시하기 위해 x 초마다 새 오버레이를 표시합니다.
현재 데이터 세트에 대한 데이터 요소를 반복합니다 * /
for (var i = 0; i <currData. length; i ++) {(function (idx) {setTimeout (function  <span class="f-c-white l-mr3">  {myPin. currIndex> 2) {this. currIndex = 0}}},dispOverlay : function (theData) {var oImg = "";// 데이터가 있습니까?if (theData) {// 기존 오버레이 아이콘을 지 웁니다.창문. 외부. msSiteModeClearIconOverlay  <span class="f-c-white l-mr3"> ;// 반환 된 데이터를 기반으로 오버레이 아이콘을 렌더링합니다 if (theData. ntype == "M") {
oImg = "images / messages-"+ theData. num + ". ico";
} else if (theData. ntype == "R") {
oImg = "images / requests-"+ theData. num + ". ico";
} else if (theData. ntype == "A") {
oImg = "images / actions-"+ theData. num + ". ico";
}// 오버레이 이미지와 레이블을 만듭니다 이. setOverlay (oImg, theData. label);}},setOverlay : function (icon, desc) {// 오버레이 아이콘을 설정합니다 창문. 외부. msSiteModeSetIconOverlay (icon, desc);창문. 외부. msSiteModeActivate  <span class="f-c-white l-mr3"> ;},init : function (myData) {이. dataBin = myData;
이. getData  <span class="f-c-white l-mr3"> ;}};// 이전에 설정된 오버레이 아이콘을 지 웁니다 창문. 외부. msSiteModeClearIconOverlay  <span class="f-c-white l-mr3"> ;// 모든 것을 걷어차 기 위해 한번 실행하십시오 myPin. "메시지", "ntype": "M", "num": 2}, { "레이블": "요청", "ntype": "R", "num": 1}, { "label": "작업", "ntype": "A", "num": 3}]}
{ "label": "요청", "ntype": "R", "num": { "label": "메시지", "ntype" : 5}, { "label": "작업", "ntype": "A", "num": 2}]}
{ "label": "요청", "ntype": "R", "num": { "label": "메시지", "ntype" : 1}, { "label": "작업", "ntype": "A", "num": 4}]}
]));// 이것은 일정한 간격으로 데이터를 가져 오는 것을 시뮬레이트하기 때문에 여기에만 있습니다 setInterval (function  <span class="f-c-white l-mr3">  {myPin. getData  <span class="f-c-white l-mr3"> }, 10000); </ script> 
 </ body> 
 </ html>   </pre>  <p>   <em> 이 기사는 원래 저자에 의해 출판되었습니다. 약간의 수정과 함께 허가하에 재발행됩니다.  </em>   </p>  <div class="Article_authorBio l-mv4 t-bg-white m-border l-pa3">  <div class="l-d-f l-pt3">  <img src = "/ img / 4b55103955c9db9dbb5fc78be8a1e0773. jpg"alt = "사이트 고정 : 회전 오버레이 아이콘사이트 고정 : 회전 오버레이 아이콘 관련 주제 :
SEO 및 SEMContent MarketingAgile 개발 마케팅 사회 세미나
"/>  <div class="f-lh-title">  <div class="f-c-grey-300">  저자 만나기  </div>  <div class="f-large"> 레이 방고 <i class="fa fa-twitter">   </i>   </div>  </div>  </div>  <div class="f-light f-lh-copy l-mt3">  Microsoft의 기술 책임자 인 Rey는 클라이언트 측 웹 개발을위한 모범 사례를 홍보하고 Microsoft가이 커뮤니티의 요구 사항을 충족하도록 돕는 데 중점을 둡니다. 그는 HTML5에 대한 열정과 풍부한 대화식 웹 응용 프로그램을 구축 할 수있는 가능성을 제시합니다. 또한 Rey는 jQuery JavaScript 프로젝트 팀원이자 작가이기도합니다. 그물 잡지.  </div>  </div>  </div>  </div>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </p>  </p>  </p>  </pre>  </currdata>  </currdata>  </html>  </head>                                                     
March 1, 2018