반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
Turning an HTML element into a jQuery Mobile accordion menu




이전 글에서 다룬 accordion menu 예제 파일을 실행 시킨 후 Firebug 로 jQuery Mobile에 의해 생성된 HTML 코드를 봅시다.




메뉴 title 을 가리키는 <h1> element 에는 ui-collapsible-heading-toggle class 를 가지고 있는 <a> child element 가 생성됐습니다.

이것은 title element가 클릭되면 버튼 처럼 처리 될 겁니다. 

data-role="collapsible" attribute 가 있는 <div> element 는
ui-collapsible-content CSS class 가 있는 새로운 <div> element 안에 그룹화 되었습니다?



반응형

command 로 iOS 에 있는 Pulse 시작시키기

2012. 12. 17. 23:26 | Posted by 솔웅


반응형
이번에 회사에서 모바일 VPN 앱인 Junos Pulse를 이용할 것 같습니다.
이와 관련해서 사전 조사를 하게 되서 관련 글을 정리해 둡니다.


Launching the Pulse for iOS App with a Command




Pulse launcher 는 디바이스 유적 iOS 앱으로 Junos Pulse를 install 했을 때 iOS와 에 register 된 command 입니다. 이 command 는 모든 login parameter 들을 명시할 수 있습니다.



여러분은 웹페이지 내와 외부 앱에서 이 Pulse launcher를 사용할 수 있습니다. 예를 들어 VPN 연결이 필요한 외부앱에서 이 Pulse launcher 를 사용해서 Pulse 를 실행시킬 수 있습니다. 만약 정확한 passcode로 이 앱을 시작시키거나 access 하려고 했다면 Pulse 는 시작 될 것이고 VPN 연결은 유저가 별도로 무엇을 입력할 필요 없이 시작 될 겁니다. 유저가 iOS 디바이스에서 Pulse Secure 의 웹포탈에 로그인을 하면 디폴트 페이지가 뜰 겁니다. iOS 디바이스 유저는 Pulse Secure Access Service Web Portal 로 로그인을 하고 VPN link를 클릭 하면 모바일 사파이에서 Pulse를 실행 시킬 수 있습니다.





Figure 1: iOS Device의 Pulse Secure Access Service Web Portal

모바일 사파리에 있는 VPN link를 tap 합니다. 그러면 Pulse app 이 실행될 겁니다. 만약 iOS 디바이스에 Pulse 가 install 돼 있지 않다면 에러가 뜰 겁니다. 그 다음 단계는 현재의 Pulse 연결 상태와 configuration 에 따라 진행 될 겁니다.


  • Pulse 가 연결상태가 아니라면 현재 세팅된 configuration에 따라 VPN 을 연결할 겁니다.
  • The target URL is already defined and the user just needs to specify a name for the connection. Pulse 가 연결된 상태가 아니고 target Pulse server 에 대한 configuration이 없다면 Pulse 는 Add Configuration 화면을 띄울 겁니다. Target URL 은 이미 정의 돼 있을 겁니다. 유저는 단지 connection 이름을 명시하시면 됩니다.
  • Pulse app 이 이미 Pulse server 에 연결된 상태라면 Pulse app 이 foreground 로 뜰 겁니다.


여러분의 Web Page나 external app에 Pulse launcher 를 employ 하시려면 아래 형식의 format 을 사용해서 링크를 걸어 주세요.

junospulse://<server-host>/<server-path>?method={vpn}&action={start|stop}
&DSID=<dsid-cookie>&SMSESSION=<smsession-cookie>&username=<username>
&password=<password>&realm=<realm>&role=<role>


Usage notes:


  • 만약 유저가 Junos Pulse 앱에 VPN configuration을 생성할 때 username, realm, role을 명시했다면 그 값들이 Web-based login 시 로그인 페이지에 자동으로 표시가 될 겁니다. 로그인 하는 동안 VPN configuration의 field들에 모두 자동적으로 이 값들이 채워졌거나 junospulse:// launch URL 이 채워졌다면 로그인 과정은 유저의 추가적인 input 과정 없이 자동으로 진행 될 겁니다.

  • Pulse app 은 VPN configuration의 password field 에 암호를 저장해 두지 않습니다. Pulse 앱은 iPhone Configuration Utility 나 Junos Pulse Mobile Security Suite 에 의해 인스톨 된 VPN configuration의 password field로 부터 어떤 값을 사용하지 않습니다. Junos Pulse 는 junospulse:// URLs에 명시된 암호만 이용합니다.

  • 유저가 직접 username,realm, role을 로그인하기 위해 입력하면 앱은 이 값들을 VPN configuration에 저장해 둡니다. 그리고 다음번에 이 값으로 자동으로 채워지게 될 겁니다. 유저가 입력한 password 는 VPN configuration에 저장되지 않습니다.

  • realm과 role field는 Apple iOS 4.2 이상의 버전에서 지원됩니다. 만약 Pulse 가 iOS 4.1 에서 실행이 됐다면 realm과 role field들은 Junos Pulse Add/Edit configuration view 에 나타나지 않을 겁니다.


반응형


반응형

Accordion menus도 jQuery 메소드에 의해 관리 됩니다. 그리고 jQuery Mobile에 의해 추가된 collapsible () method도 사용됩니다. 그리고 jQuery Mobile 에 의해서 두개의 새로운 이벤트(expand and collapse)도 추가 됐습니다. Accordion menus는 collapsible standard component 연결돼 있습니다.


Dynamically create an accordion menu


accordion menu는 data-role="collapsible" attribute와 함<div> element를 사용해서 생성합니다. HTML title (eg <h1>)은 그 안에 있고 메뉴의 제목을 만들어 줍니다. 그 메뉴의 내용은 <div>안에 있는 다른 element들에 의해 표현 됩니다.


data-role="collapsible-set" attribute가 있는 다른 <div> element 안에 accordion menu 가 있다면 한 메뉴를 오픈하면 다른 메뉴들은 닫힐 겁니다. 그래서 한번에 한 메뉴만 열리게끔 만들죠. 역으로 만약 메뉴들이 data-role="collapsible-set" attribute가 있는 한개의 <div> element에 속해 있지 않으면 많은 메뉴들이 동시에 열려 있을 수 있습니다.


Create an accordion menu dynamically


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <p> This is an accordion menu </p>

  </div>

</div>


</body>

</html>


<script>


var html = "";

html += "<div id=id1 data-role=collapsible>";

html +=   "<h1>Menu 1 : Click to open / close </h1>";

html +=   "<p> Paragraph 1.1 </p>";

html +=   "<p> Paragraph 1.2 </p>";

html +=   "<p> Paragraph 1.3 </p>";

html += "</div>";

html += "<div id=id2 data-role=collapsible>";

html +=   "<h1>Menu 2 : Click to open / close </h1>";

html +=   "<p> Paragraph 2.1 </p>";

html +=   "<p> Paragraph 2.2 </p>";

html +=   "<p> Paragraph 2.3 </p>";

html += "</div>";

html += "</div>";


$("#home div:jqmData(role=content)").append (html);


</script>



tistory546_01.html




디폴트로 각 메뉴들은 닫혀있습니다. 열린 상태로 초기화 하려면 해당 <div> element에 data-collapsed="false" attribute를 추가하시면 됩니다.


반응형


반응형

문재인 후보를 지지하고 난 후 거의 하루에 한가지씩 감동을 받는 것 같습니다.


2000 키로 미터를 40시간이나 버스를 타고 가서 투표하고 왔다는 인도 방갈로르에 사시는 한인 분 같이 투표소로 투표소로 달려가셔서 한표를 보태시는 재외국민들도 감동이었구요.


저도 그중 한 명이예요 ^^ 전 그냥 왕복 두시간 걸려서 투표하고 왔지만.. ^^

투표하러 가는 김에 근처 한인 마트에 들러서 한국 음식들도 좀 사 와서 요즘 잘 먹고 있어요. ^^

그리고 윤여준 씨의 찬조연설이 특히 감동적이었습니다.


진솔한 그분의 말씀이 가슴에 와 닿았고 그분이 접하신 문재인 후보 얘기를 들으면서 다시한번 문재인 후보가 대통령으로 아주 적격이구나 하는 것을 확인할 수 있었습니다.


그리고 길게 늘어선 한국의 부재자 투표 행렬도 감동이었습니다.
그 어느때 보다도 많은 분들이 부재자 투표에 참여해서 한표의 권리를 행사하는 모습이 너무 보기 좋아서 감동 받았어요.
(혹시 그 때 부재자 투표 못하신 분들은 부재자 투표용지를 가지고 당일 주민등록 주소지의 투표하는 곳에 가시면 하실 수 있다고 하니 꼭 하세요.^^)


강풀씨의 '내가 문재인을 지지하는 이유' 라는 만화도 빼 놓을 수 없지요.


그리고 어제 이상하게 토요일만 되면 일찍 깨는 병 때문에 새벽 4시 조금 넘는 시간에 일어났어요.

인터넷을 켜니까 마침 문재인 후보의 광화문 유세에 관련된 글들이 실시간으로 뜨더라구요.
그리고 마침내 안철수 전 후보님까지 깜짝 등장하시고.


진짜 감동스럽지 않나요?

제 개인적으로는 이번에 문재인 후보가 대통령 되시고 한국도 미국처럼 대통령 중임제로 개헌을 해서 다음에는 안철수 후보가 대통령이 되셔서 중임을 하시면 한국이 정말 상식적이고 건강하게 자리가 잡힐 것 같아요.

그 사이에 통일이 되서 우리의 경제력과 국력도 훨씬 세지고 나라도 부정부패, 독재, 친일 세력이 더이상 권력 주변에 가까이 못하는 그런 건강한 나라가 되면 우리나라가 정말 강대국이 되지 않겠습니까?

오늘(토)은 낮에 집에서 인터넷 서핑 하다가 우연히 서울대 법대 조국 교수의 문재인 후보 TV 찬조 연설을 보게 됐어요.

정말 군더더기 하나 없고 옳은 말씀만 하시는 조국 교수의 찬조연설이 또 한번 감동을 주시더라구요.


내일(일) 오전 6시면 한국은 일요일 8시 입니다.

3차 TV 토론 하는 날이죠. 이번엔 출근시간에 쫒길 필요가 없으니 여유있게 볼 수 있을 것 같습니다.

문재인 후보를 지지하고 난 후 내일은 또 어떤 감동이 다가올까 기대되는 하루가 계속 되고 있습니다.

이번에 반드시 문재인 후보가 당선되서 앞으로 계속 감동받는 날들이 이어졌으면 좋겠습니다.

반응형


반응형

회사에서 앞으로 Hybrid 앱 쪽을 고민하는 것 같습니다.

지금까지 저희 팀에서는 모바일 웹 어플리케이션만 만들었는데요.


이번에 Hybrid 관련해서도 관심을 가지더라구요.


일단 제가 알아볼 기술은 아래 3가지 입니다.


1) 현재 디바이스가 네트워크와 연결 상태에 있는지 여부

2) 현재 연결된 네트워크 이름 알아낼 수 있는지 여부 (WiFi 이면 그 이름도)

3) 현재 특정 앱이 디바이스에 깔려 있는지 여부 알아내기 (혹은 실행하기)


이 세가지인데요.


제가 알아낸 것은 PhoneGap 에서 지원하는 Connection 이라는 API 입니다.

이 API 로 1번 문제는 해결할 수 있었습니다.


인도에 있는 팀에서 플러그인을 만들어서 2번 문제까지도 해결을 했는데요.

아마 PhoneGap 과 Java와 JS 등등을 사용해서 해결한 것 같더라구요.

나중에 소스 분석 좀 해 봐야겠어요.


3번은 아직 방법을 찾지 못했습니다.

안드로이드나 iOS Native language 를 사용해서 해결해야 될 것 같기도 하고 아니면....

웹 기술로도 모바일 기기의 이메일, 카메라, SMS 등을 실행시킬수 있는 걸로 봐서 간단하게 해결 할 수도 있을 것 같기도 한데...


좀 더 연구해 봐야겠습니다.


일단 이 글에서는 제가 알아본 PhoneGap 의 Connection 을 이용한 예제를 정리해 놓겠습니다.




결과화면은 이렇습니다. 처음 시작할 때나 'Click It 버튼을 클릭할 때 Alert 화면으로 현재 연결된 네트워크 Type 을 보여 줍니다.


우선 파일 구조부터 살펴 보죠.



우선 PhoneGap 프로젝트를 만듭니다.

자세한 내용은 이전글을 참조하시구요.


우선 빨간 줄을 그은 파일들은 그냥 복사만 해 넣으면 되는 겁니다.

폰갭 다운 받은 폴더에서 해당 파일을 복사해서 넣으세요.

이것도 이전글을 참조하세요. config.xml 은 지난번에는 복사해 넣지 않은건데 이번엔 복사해 넣으셔야 됩니다.


이 파일에서 PhoneGap 에서 지원하는 기능들을 사용할 경우 해당하는 플러그인을 불러올거거든요.


그 다음 파란줄로 그은 파일들이 여러분이 손을 보셔야 될 파일들 입니다.

일단 MainActivity.java 파일들을 보죠.


package com.example.test;

import org.apache.cordova.*;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

처음 Android Project 를 만들면 약간 다르게 돼 있을겁니다.

자세한 내용은 역시 이전글에 있습니다. 참고하세요.


주요한 코딩은 index.html 부분에 있습니다.


<!DOCTYPE html>
<html>
  <head>
    <title>navigator.connection.type Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for Cordova to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova is loaded and it is now safe to make calls Cordova methods
    //
    function onDeviceReady() {
        checkConnection();
    }

    function checkConnection() {
        var networkState = navigator.network.connection.type;

        var states = {};
        states[Connection.UNKNOWN]  = 'Unknown connection';
        states[Connection.ETHERNET] = 'Ethernet connection';
        states[Connection.WIFI]     = 'WiFi connection';
        states[Connection.CELL_2G]  = 'Cell 2G connection';
        states[Connection.CELL_3G]  = 'Cell 3G connection';
        states[Connection.CELL_4G]  = 'Cell 4G connection';
        states[Connection.NONE]     = 'No network connection';

        alert('Connection type: ' + states[networkState]);
    }

    </script>
  </head>
  <body>
  <p><br><p>
    <p>A dialog box will report the network state.</p><br>
    <center><input type="button" value="Click it" onClick="checkConnection()"></center>
  </body>
</html>


이 코드는 PhoneGap API Document에 나와 있는 내용입니다.

제가 덧붙인 부분은 아랫부분에 버튼을 만들고 그 버튼을 클릭하면 checkConnection() 함수를 호출하는 부분입니다.


우선 처음에 시작은 onDeviceReady() 함수에서 합니다.

이 함수는 앱이 시작하면 자동으로 호출되는 함수 같습니다.


이 함수 안에서 checkConnection() 함수를 호출하니까 앱이 시작할 떄 checkConnection()이 동작을 하게 됩니다.


checkConnection() 에는 Cordova API 에서 제공하는 Connection 기능을 구현해 놓았습니다.


navigator.connection.type 로 현재 연결된 Network type 을 받아서 

networkState 변수에 담습니다.

그리고 var states 배열에 각 Network 타입마다 적당한 문장을 대입시켜 넣구요.

alert('Connection type: ' + states[networkState]); 로 해당 배열을 출력시킵니다.


하고 나니 간단하네요.


Test.zip

필요하신 분들은 이 파일을 다운 받아서 실행해 보세요.


Test.apk

위 파일은 안드로이드 애플리케이션으로 빌드한 파일 입니다.


이 파일을 안드로이드 폰에 깔아서 실행시키시면 동작할 겁니다.



반응형


반응형

즐거운 금요일입니다.

일주일간 일을 끝마치고 아주 가뿐한 마음으로 집에 돌아왔습니다.


지난주 차타고 한시간 거리에 있는 한인마트에 가서 이것 저것 사면서 닭똥집도 좀 샀거든요. ^^

와이프가 막걸리도 한병 사고..


오늘 아주 가벼운 마음으로 막걸리에 닭똥집 먹었습니다.


이번 주말에 문재인 후보가 확실히 역전할 거라고 생각하니 기분이 더 좋더라구요.


승리가 눈에 보여서 그런가요?

이쪽이든 저쪽이든 네거티브가 나오면 왠지 조마조마 해 져요.


지금 이 분위기대로 가면 이길 것 같은데... 왠지 이상한 사건 터져서 분위기가 바뀌게 되지 않을 까 해서요.


그러니 여당은 어떻겠어요. 이대로 가면 안되니 어떻게 해서든 뭔가 하나 터트려서 분위기를 확 휘젓고 싶지 않겠어요?


요즘 저는 문재인 후보 에 대한 얘기만 하지 저쪽 후보는 이름도 거론하지 않아요.. ^^


오늘 거기에 딱 맞는 소식이 들리더라구요.


강풀이 그린 '내가 문제인을 지지하는 이유' 라는 만화...


오늘은 그 만화를 보면서 다시 한번 다짐 합니다.

꼭 문재인 후보를 대통령으로 만들자!!!!





반응형

slider 생성 관련 예제들..

2012. 12. 15. 05:54 | Posted by 솔웅


반응형
Examples of manipulation of sliders



Transmit the slider's value to the server


slider 의 값을 서버로 전달하는 것은 이전 글에서 봤듯이  change event에서 구현할 수 있습니다.  이 이벤트는 축에서 버튼을 움직일 때마다 무수히 많이 발생하게 됩니다 서버에 수없이 현재 값을 전달하게 되겠죠... 해결책은 뭘까요?


하나는 축에서 버튼의 움직임이 끝났을 때에만 즉 손가락이나 마우스가 slider에서 떠났을 때에만 서버로 그 값을 전달하는 방법이 있겠고 이렇게 change event가 아닌 다른 이트를 사용하는 방법이 있겠죠.


Transmit the value of the slider to the server by Ajax


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Indicate the number of rooms: </span><br />

    <input type=range min=1 max=100 /><br />

</div>


</body>

</html>


<script>


$("input").live ("slidercreate", function ()

{

  $(".ui-slider").bind ("vmouseup", function (event)

  {

    var value = $("input").val ();

    $.ajax (

    

      url : "action.php", 

      data : { value : value },

      complete : function (xhr, result)

      {

        if (result != "success") return;

        var response = xhr.responseText;

        $("#home div:jqmData(role=content)").append (response);

      }

    });   

  });

});


</script>


change
event를 사용하는 대신에 슬라이더에서 손가락이 떠날때 발생하는
mouseup event를 사용했습니다.


action.php file


<?
$value = $_REQUEST["value"];
$html = "";
$html .= "Value: <span id=txt>$value</span><br />";
echo utf8_encode ($html);
?>



action23.php

tistory542_01.html


아래는 버튼을 몇번 옮기고 난 후의 화면입니다.





Use a submit button to transmit information


이제 서버에 slider이 값을 전달하기 위해 Submit button을 사용해 보겠습니다. slider의 값을 표시하는 새창에는 back 버튼을 표시하겠습니다.      


Use a submit button to transmit the value of the slider


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <form action=action.php>  

      <span> Indicate the number of rooms: </span><br />

      <input type=range min=1 max=100 name=slider /><br />

      <input type=submit value=OK />

    </form>

  </div>

</div>


</body>

</html>



slider와 관계가 있는 <input> element 에는 이제 name attribute가 있는데요 이것은 서버로 슬라이더의 값을 전달할 때 사용될 겁니다.


action.php file


<?
$slider = $_REQUEST["slider"];
?>

<!DOCTYPE html> 
<html> 
<head> 
  <meta http-equiv=Content-Type content=text/html;charset=iso-8859-1 />
</head> 

<body>
<div data-role=page id=win2 data-add-back-btn=true>
  <div data-role=header>
    <h1>Window 2</h1>
  </div>
  
  <div data-role=content>
    <p> Value of slider : <?= $slider ?> </p>
  </div>
</div>
</body>

</html>


action24.php


tistory542_02.html


Change the opacity of an image with a slider


We would like to modify the opacity of an image using a slider. The minimum value is 0 (opacity of 0), the max is 100 (opacity of 1). Note that we do not change the value of the slider from 0 to 1, because it allows only two possible values for the following: 0 or 1.

이제 슬라이더를 이용해서 이미지의 투명도를 조절해 보겠습니다. 미니멈 값은 0이고 맥시멈 값은 100 입니다. 0에서 1이 아니라는 것을 유념해 주세요. 왜냐하면 그렇게 하면 오직 두개의 값만 표시될테니까요.

그런데 투명도의 범위는 0에서 1이니까 이것을 현재 값에서 100으로 나누겠습니다.


Use a slider for varying the opacity of an image


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Change the opacity of the image: </span><br />

    <input type=range min=0 max=100 value=100 /><br /><br /><br />

    <img src=images/jquery.jpg height=50% />

  </div>

</div>


</body>

</html>


<script>


$("input").live ("slidercreate", function ()

{

  $("input").bind ("change", function (event)

  {

    $("img").css ( { opacity : $("input").val () / 100 } );

  });

});


</script>


tistory542_03.html



그 나는 값이 0.29가 되면 아래와 같이 표시될 겁니다.      




반응형

slider 를 customizing 하기

2012. 12. 15. 05:35 | Posted by 솔웅


반응형
Customize sliders



이전 글에서 jQuery Mobile 이 변환하는 것을 봤습니다.
<input> element 에 type="number" data-type="range" attributes 가 생기는 것도 봤는데요. 거기에다가 ui-slider class 가 있는 <div> element 도 생겼습니다. 거기에 ui-slider-handle class 가 있는  <a> link 도 생성됐죠. 이건 slider 의 축을 따라 움직이는 버튼을 만들기 위한 클래스였죠.


이 slider 를 다르게 display 하고 싶으면 이 CSS class 들을 수정하면 됩니다.


Change the styles associated with the slider


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

  

  <style type=text/css>

    .ui-slider {

      width : 90% !important;

      background : yellow;

    }

    input.ui-slider-input {

      display : none !important;

    }

    .ui-slider-handle {

      background : red;

    }

  </style>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Indicate the number of rooms: </span><br />

    <input type=range min=1 max=5 /><br />

</div>


</body>

</html>


tistory541_01.html





input field 부분의 ui-slider-input class 에 none으로 할당해서 input field 부분을 없앴습니다. 여기서 !important를 사용하는 것이 중요합니다. 왜냐하면 jQuery Mobile 이 이것을 보고 적용을 하거든요. 바로 jQuery Mobile 에게 이 클래스를 반드시 적용하라고 일러 주는 겁니다.


slider 의 축은 ui-slider class 에서 width property를 90%로 세팅했기 때문에 화면 대비 90% 크기로 보여질 겁니다. 여기에도 jQuery Mobile 에게 이것을 적용하도록 시키기 위해  !important이 반드시 필요합니다. 이 축은 노란 배경화면으로 세팅됐습니다.


마지막으로 ui-slider-handle class 에 해당하는 slider button은 빨간 배경 색으로 initialize 됐습니다.




반응형

slider 의 이벤트 관리하기

2012. 12. 15. 04:56 | Posted by 솔웅


반응형
Manage events on sliders




slider 는 .<input> input field 와 관련이 있죠. 그래서 slider에 어떤 변화가 오면 input field에 change event가 발생 됩니다.


것을 확인하기 위해 화면의 <span> element 에 slider 의 값을 display 해 보겠습니다.



Using the slider change events


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Indicate the number of rooms: </span><br />

    <input type=range min=1 max=100 /><br />

    Value : <span id=txt></span>  </div>

</div>


</body>

</html>


<script>


$("input").live ("slidercreate", function ()

{

  $("input").bind ("change", function (event)

  {

    $("#txt").text ($(this).val ());

  });

});


</script>


tistory540_01.html




여기서 중요한 점은 slider 의 change events 를 살펴보는 것은 그 slider 가 화면에 제대로 생성됐을 때만이 가능하다는 겁니다. 다시말해 오리지널 HTML 코드가 jQuery Mobile 에 의해 완전하게 변화된 이후라야 된다는 거죠. 그래서 우리는 slidercreate event 에change event 를 살펴보도록 코딩을 한 겁니다. 그렇지 않으면 제대로 작동하지 않을 겁니다.





위의 방법과는 다른 방법을 사용할 수도 있습니다. slider 가 생성되 있지 않아도 되는 방법이죠.  change event가 발생했을 때 bind () method 대신에 live () method를 사용하는 겁니다. 그러면 jQuery Mobile 이 <input> field 를 생성할 때에도 live () method 에 의해서 그 변화가 observed 될 수 있습니다.  아래 예제를 보시겠습니다.


Observe the change event on the slider without waiting for its creation


<!DOCTYPE html>


<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <span> Indicate the number of rooms: </span><br />

    <input type=range min=1 max=100 /><br />

    Value : <span id=txt></span>  </div>

</div>


</body>

</html>


<script>


$("input").live ("change", function (event)

{

  $("#txt").text ($(this).val ());

});


</script>



tistory540_02.html


반응형


반응형

오늘은 새벽 4시반에 일어났습니다.

다른 날 보다 좀 이른 시간에 일어났습니다만 다른날 들도 새벽 5시에서 5시 반 사이에 일어나니 조금 일찍 일어난 거죠.

대개 아침에 일어나서는 Mobile Application 관련해서 공부를 합니다.

그리고 그 내용을 이 블로그에 정리를 하는데요.


오늘은 대선관련 뉴스를 검색하게 되네요.

지금 여기 기온을 검색해 보니 화씨 27도 입니다.

섭씨로 하면 -2.7 도 입니다.


좀 춥네요. 그래서 침대 이불속에서 인터넷 서핑하고 있습니다. ^^

키보드 치느라고 꺼낸 두 팔도 얼른 이불 속으로 집어 넣고 싶네요. ;;


여론조사 공표할 수 있는 마지막 날이 13일 이었죠.

마지막 여론조사 추세가 어떤지 궁금했습니다.


지금은 각 여론조사 기관에서 여론조사는 하고 있겠지만 이것을 공표하지는 못하죠.

12월 12일까지 한 여론조사만 공표할 수 있습니다.



지금까지 발표된 여론조사 추이인데요.

안철수 후보가 11월 24일 사퇴한 후 지지율 격차가 많이 좁혀진 상태에서 그래프는 시작합니다.

하지만 그 이후 두 후보의 지지율은 격차를 벌리고 있는데요.

안철수 후보가 다시 문재인 후보 적극 지지를 선언하고 부산에서 첫 공동유세를 시작한게 12월 7일인데요.

그 이후로 격차가 다시 좁혀지기 시작합니다.

12월 13일 마지막 날 여론조사 결과를 보면 언뜻 안철수 후보가 사퇴한 이후의 여론조사인 11월 25일과 그 격차가 비슷한 것 같습니다.


당시에는 갑작스러운 사퇴 발표로 안후보 지지자분들 중에 쉽게 문재인 후보 지지로 돌아서지 못한 부분이 있었습니다. (저도 그렇구요) 그리고 안후보가 행동을 보이지 않아 지지율 격차가 벌어졌는데.. 이제 겨우 안후보 사퇴직후의 시기만큼 다시 회복한 것 같습니다.


앞으로도 안철수씨가 계속 적극적인 유세를 보일수록 문재인 후보에 대한 지지율은 더 올라갈 가능성이 있구요.


문재인 후보 자체로도 TV 토론 등에서 타 후보보다 훨씬 더 진솔하고 믿음직스럽고 점잖은 모습을 보여 지지율 상승을 견인하고 있습니다.


이렇듯이 문재인 후보는 아직도 지지율을 끌어 올릴 요소들을 가지고 있습니다.


반면에 여당쪽에서는 딱히 더 이상 끌어올릴만한 요소들은 없는데요.

흑색선전과 인신공격등으로 정치불신을 퍼트려 투표율을 떨어뜨리는 방법이 하나 있을 겁니다.

여당 선거대책위의 주된 발언 내용이 앞으로 정치에 대한 불신을 불러 일으키는 것들일거라고 예상되는데요. 여러분도 한번 관심있게 지켜봐 주세요.


그리고 또 한가지는 큰거 한건 등이 있습니다.

예전에는 KAL 기 폭파범 김현희를 대통령 선거 하루 전에 한국으로 압송했다던지

이회창시절 한나라당의 총풍사건으로 알려진 북한에 대통령 선거 직전에 휴전선에서 총격도발을 부탁했다는 언론 보도 등이 있었습니다.


올해에는 북한의 김정일 장남인 김정남이 이미 대한민국에 망명의사를 밝혔고 남한에 들어와 있다는 소문이 돌고 있습니다.

그리고 이번주말이나 다음주 초에 이 김정남 망명 기자회견으로 큰건 하나 할수도 있지 않나 하는 소설이 등장한 상태인데요. (나는꼼수다에서 제기한 의혹인데요. 여기로 가시면 들으실 수 있습니다.)


나꼼수에서도 이것을 소설일 뿐이라고 하면서 방송하더라구요.

이 소설이 현실이 되지 않기를 바랄뿐입니다.

정치를 그런 저급한 공작에 의해 영향을 미치려는 구시대적인 발상은 더 이상 먹혀들지 않을 겁니다.


소설 얘기는 그만하고 지금까지의 여론조사를 심층 분석한 동영상이 있어서 제 블로그에 share 합니다.

한겨레 TV에 올라온 동영상으로 제목은 “문재인, 주말 역전 가능성 있다” 입니다.





이 동영상 제목대로 이번 주말에 문재인 후보가 역전하면 좋겠습니다.


이번 선거의 주요 관전 포인트 중의 하나가 20,30 대 투표율입니다.

그리고 인천 경기, 충청, 부산경남 지역의 투표 결과이구요.


이 지역들에 사시는 20,30대분들은 참고하세요.. ^^


추신)

십알단이 검거되서 그런가요? 제 블로그에도 이상하게 딴지거는 댓글이 없네요. ^^
일단 저도 제가 할 수 있는 만큼 IP 추적해서 의심되는 건 신고를 했었습니다. ^^

참고) 시사인 기사  "박근혜 후보, SNS 여론전략 보고 직접 받았다"


반응형