chrome 브라우저에서 현재 inpyt type="range"속성의 range의 범위는 숫자로 표기되지 않습니다.

chrome 브라우저에서 range의 현재 value값을 보여줄 수 있는 jQuery입니다. 표기하고 싶을때 사용할 수 있는 jQuery를 소개해 드리겠습니다.


<style>

.controller .tbl .range-slider__value{

display:none;

}


@media screen and (-webkit-min-device-pixel-ratio:0){

.controller .tbl .range-slider__value{

display: inline-block;

position: relative;

width:45px; 

padding:5px; 

margin:0 0 0 8px; 

font-size:13px; 

color: #444; 

text-align: center; 

background:#e3f1fe;}

}

</style>  /*chrome 브라우저에서만 사용할 수 있도록 hack적용*/


<script type="text/javascript">

var rangeSlider = function(){

  var slider = $('.range-slider'),

      range = $('.range-slider__range'),

      value = $('.range-slider__value');

    

  slider.each(function(){


    value.each(function(){

      var value = $(this).prev().attr('value');

      $(this).html(value);

    });


    range.on('input', function(){

      $(this).next(value).html(this.value);

    });

  });

};


rangeSlider();

</script>


<div class="range-slider">

  <input class="range-slider__range" type="range" value="100" min="0" max="500">

  <span class="range-slider__value">0</span>

</div>








스크립트를 적용하면 위와같이 range의 범위설정에따라 span영역에 숫자가 움직입니다.



1. script를  body 영역에 넣기


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        .redTxt{color:red}

        .blueTxt{color:blue}

        .greenTxt{color:green}

    </style>

</head>

<body>

    <p id="changeText">클릭한 버튼의 색에따라 문장이 바뀝니다</p>

    <p><button type="button" id="rBtn">빨강</button></p>

    <p><button type="button" id="bBtn">파랑</button></p>

    <p><button type="button" id="gBtn">초록</button></p>

    

    <script type="text/javascript">

        rBtn.onclick = function(){

            document.getElementById("changeText").className = "redTxt";

        }

        bBtn.onclick = function(){

            document.getElementById("changeText").className = "blueTxt";

        }

        gBtn.onclick = function(){

            document.getElementById("changeText").className = "greenTxt"

        }


    </script>

</body>

</html>


body영역 마지막에 script를 넣을 시 "id"직접 불러와 이벤트를 적용할 수 있다.


2. script를  head영역에 넣고 마지막에 실행하기


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .redTxt{color:red}
        .blueTxt{color:blue}
        .greenTxt{color:green}
    </style>
    <script type="text/javascript">
      window.onload = function(){  //페이지를 다 읽은 뒤 script를 실행해라!
        rBtn.onclick = function(){
            document.getElementById("changeText").className = "redTxt";
        }
        bBtn.onclick = function(){
            document.getElementById("changeText").className = "blueTxt";
        }
        gBtn.onclick = function(){
            document.getElementById("changeText").className = "greenTxt"
        }
      }
    </script>
</head>
<body>
    <p id="changeText">클릭한 버튼의 색에따라 문장이 바뀝니다</p>
    <p><button type="button" id="rBtn">빨강</button></p>
    <p><button type="button" id="bBtn">파랑</button></p>
    <p><button type="button" id="gBtn">초록</button></p>


HTML과 JS는 순차적으로 실행하는 언어로 window.onload = function()   실행문이 없을 시 문장이 제대로 실행되지 않는다.


자바스크립트를 이용하여 css효과를 사용할 때의 inline방식과 class방식의 차이점을 알아보겠습니다.


1. inline방식의 자바스크립트 css효과


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <script type="text/javascript">

        function changeColor(){

            document.getElementById("changeText").style.color = "red"; //inline방식

        }

    </script>

</head>

<body>

    <p id="changeText">클릭한 버튼의 색에따라 문장이 바뀝니다</p>

    <p><button type="button" onclick="changeColor()">빨강</button></p>

</body>

</html>


document.getElementById("id").style.color = "변수"; 를 사용하면 



위의 사진과 같이 style="color:red"로 inline형식의 css가 적용된 것을 확인할 수 있습니다.

inline방식의 css사용 시 여러가지의 style을 적용 할 때  중복된 문장을 여러번 사용해야하는 번거로움이 있습니다.


   function changeColor(){

           document.getElementById("changeText").style.color = "red"; //글자색을 바꾼다

  document.getElementById("changeText").style.background = "blue"; //배경색을 바꾼다

  document.getElementById("changeText").style.fontSize = "14"; //글자크기를바꾼다

        }





2. class방식의 자바스크립트 css효과


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        .txtStyle{color:red; background:blue; font-size:14px;}

    </style>

    <script type="text/javascript">

        function changeColor(){

            document.getElementById("changeText").className="txtStyle"; //class 방식

        }

    </script>

</head>

<body>

    <p id="changeText">클릭한 버튼의 색에따라 문장이 바뀝니다</p>

    <p><button type="button" onclick="changeColor('')">빨강</button></p>

</body>

</html>


위의작성된 코드처럼 class를이용하여 style을 적용하였을 경우 class하나만을 사용하여도 다양한 효과를 얻을 수 있습니다.



'JavaScript > 초급 JS' 카테고리의 다른 글

input type="range" 크롬에서 value 표시  (0) 2018.02.06
getElementById생략하기  (0) 2018.01.29

CSS를 사용하여 긴 문장을 말줄임표로 처리하는방법을 공유하겠습니다.


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>CSS로 말줄임표넣기</title>

    <style>

        .ellipsis{width:180px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;}

    </style>

</head>

<body>

    <h1>Hello world!</h1>

    <h1 class="ellipsis">Hello world!</h1>

</body>

</html>



동일한 <h1>태그안의 문장에 css를 설정하여 정해진 width길이를 넘어가는 글자는 말줄임표로 처리하였습니다.


게시판과 테이블에 유용하게 사용될 수 있습니다.




'CSS > CSS3' 카테고리의 다른 글

CSS를 이용한 리스트 넘버링 (순수CSS)  (0) 2018.01.25
SVG 파일의 CSS 애니메이션  (0) 2018.01.24

CSS의 counter-increment속성을 사용한 목록 번호 매기기


<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>counter-increment</title>

    <style>

        body{font-size:1.5em;}

        ul{list-style:none; margin:0; padding:0;}

    </style>

</head>

<body>

<h1>커피</h1>

    <ul>

        <li>첫번째 목록</li>

        <li>두번째 목록</li>

        <li>세번째 목록</li>

        <li>네번째 목록</li>

    </ul>

</body>

</html>


기본적인 형태의 ul목록입니다.



<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>counter-increment</title>

    <style>

        body{font-size:1.5em;}

        ul{list-style:none; margin:0; padding:0; counter-reset:list-number;}   /*list-number의 번호 초기화*/

        ul li{counter-increment:list-number;}   /*li선택자의 counter-increment명을 'list-number'라고 명명*/

        ul li:before{content:counter(list-number);}   /*list-number를 count하여 가상선택자before의 content로 담아준다.*/

    </style>

</head>

<body>

    <h1>커피</h1>

    <ul>

        <li>아메리카노</li>

        <li>카페라테</li>

        <li>카푸치노</li>

    </ul>

</body>

</html>


counter-increment를 통하여 위와같이 번호가 붙은 결과를 얻을 수 있습니다.

위의 예제를 활용하여 넘버링이 중첩된 형태의 커피숍 메뉴판을 만들어보겠습니다.





<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>counter-increment</title>

    <style>

        body{font-size:1.5em; counter-reset:title;}/*h1의 상위요소인 body에서 title의 번호 초기화*/

        h1{font-size:1.5em; counter-increment:title;}/*h1태그의 counter-increment명을 'title'이라고 명명*/

        h1:before{content:counter(title)"."; padding-right:5px; color:orange}/*쌍따옴표 " "안에 문자를 입력하면 "1."와같이 출력한다.*/

        ul{list-style:none; margin:0; padding:0; counter-reset:list-number;} /*list-number의 번호 초기화*/

        ul li{counter-increment:list-number; line-height:2} /*li선택자의 counter-increment명을 'list-number'라고 명명*/

        ul li:before{content:counter(list-number); /*list-number를 count하여 가상선택자before의 content로 담아준다.*/

            display:inline-block; text-align:center; line-height:1.2;  width:30px; height:30px; border-radius:50%; color:#fff; margin-right:10px; background:brown;} 

    </style>

</head>

<body>

    <h1>커피</h1>

    <ul>

        <li>아메리카노</li>

        <li>카페라테</li>

        <li>카푸치노</li>

    </ul>

     <h1>주스</h1>

    <ul>

        <li>딸기주스</li>

        <li>오렌지주스</li>

        <li>포도주스</li>

    </ul>

</body>

</html>


h1태그에도 counter-increment 요소를 적용하여 간단한 메뉴판 예시를 만들어보았습니다. 

위의 요소에서 중요한 포인트는 content:counter(title)"."와같이 쌍따옴표 영역에 문자를 입력하면 counter함수와 문자를 연결해서 쓸 수 있습니다. JS의 {함수+"문자"}와 유사한 형태입니다.



마지막으로 h1태그의 'title'함수와 li태그의 'list-number'함수를 중첩하여 사용하는 방법을 보여드리겠습니다.





<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>counter-increment</title>

    <style>

        body{font-size:1.5em; counter-reset:title;}/*h1의 상위요소인 body에서 title의 번호 초기화*/

        h1{font-size:1.5em; counter-increment:title;}/*h1태그의 counter-increment명을 'title'이라고 명명*/

        h1:before{content:counter(title)"."; padding-right:5px; color:orange}/*쌍따옴표 " "안에 문자를 입력하면 "1."와같이 출력한다.*/

        ul{list-style:none; margin:0; padding:0; counter-reset:list-number;} /*list-number의 번호 초기화*/

        ul li{counter-increment:list-number; line-height:2} /*li선택자의 counter-increment명을 'list-number'라고 명명*/

        ul li:before{content:counter(title)"-"counter(list-number);/*h1의 'title'과 문자"-" li의 'list-number'를 연결*/

            display:inline-block; text-align:center; line-height:1.2;  width:60px; height:30px; border-radius:50%; color:#fff; margin-right:10px; background:brown;} 

    </style>

</head>

<body>

    <h1>커피</h1>

    <ul>

        <li>아메리카노</li>

        <li>카페라테</li>

        <li>카푸치노</li>

    </ul>

     <h1>주스</h1>

    <ul>

        <li>딸기주스</li>

        <li>오렌지주스</li>

        <li>포도주스</li>

    </ul>

</body>

</html>




위와같이 content영역에 'title'함수와 'list-number'함수를 동시에 넣어 중첩할 수 있습니다.




첨부한 예제를 분석해보면 이해하기 쉬울거라고 생각됩니다.



'CSS > CSS3' 카테고리의 다른 글

CSS 말줄임표 (순수 CSS)  (0) 2018.01.26
SVG 파일의 CSS 애니메이션  (0) 2018.01.24

다양한 해상도를 제공하는 기기의 등장으로 인하여 SVG이미지의 사용도가 높아지고 있습니다.



아직 IE에서 SVG 애니메이션을 지원하지 않지만 차차 개선되면  GIF이미지의 색상의 한계점을 극복하며 더욱 자연스러운 움직임을 보여줄 수 있을거라 생각합니다.



애니메이션이 적용되지않은 SVG파일을 준비합니다.



<style>

      .cls-1 {

        stroke: #b00e0f;

        stroke-linejoin: round;

        stroke-width: 2px;

        filter: url(#filter);

      }


      .cls-1, .cls-2 {

        fill-rule: evenodd;

      }


      .cls-2 {

        fill: #fff;

      }

    </style>


SVG파일내에 위와같이 <style>영역이 지정되어있습니다.




<style>

      .cls-1 {

        stroke: #b00e0f;

        stroke-linejoin: round;

        stroke-width: 2px;

        filter: url(#filter);

      }


      .cls-1, .cls-2 {

        fill-rule: evenodd;

      }


      .cls-2 {

        fill: #fff;

      }

     

      #filter feFlood{flood-opacity:0.3; opacity:0; animation:glow 2s ease-in-out infinite;}

     

@keyframes glow{

0%{flood-opacity:0.1;}

50%{flood-opacity:0.3;}

100%{flood-opacity:0.1}

}

#Rounded_Rectangle_961{transform-origin:center; width:100%; animation:mark 1.5s ease-in-out infinite; }

  @keyframes mark{

  0%{opacity:1; transform:scale(1);}

50%{opacity:0.5; transform:scale(0.9);}

100%{opacity:1; transform:scale(1);}

  }

 

 

    </style>


SVG파일 <style>영역 내에 애니메이션을 추가해줍니다. 저는 SVG파일에 지정되어있는 ID값을 그대로 사용했습니다.




애니메이션을 적용한 최종 결과물입니다.(ie를제외한 브라우저에서 확인해주세요)



***SVG의 애니메이션은 아직 IE에서 "not supported"단계입니다. 



'CSS > CSS3' 카테고리의 다른 글

CSS 말줄임표 (순수 CSS)  (0) 2018.01.26
CSS를 이용한 리스트 넘버링 (순수CSS)  (0) 2018.01.25

개인적으로 유용하게 쓰고있는 브라켓 확장기능을 소개하도록 하겠습니다.



1.확장기능 설치방법 



-브라켓 좌측 상단 파일 - 확장기능 관리자 선택





2.확장기능 관리자 소개




1) 설치가능

원하는 확장기능의 검색과 설치를 할 수 있는 메뉴입니다. 검색창에는 확장기능의 이름은 혹은 기능을 넣어 검색할 수 있습니다.


2) 테마

취향에 맞는 화면 테마를 설치할 수 있습니다. 다운받은 테마는 보기 - 테마를 들어가 변경할 수 있습니다. 개인적인 추천테마는 Monokai Strikes Back입니다.


3) 설치됨

다운받은 확장기능들을 확인하고 비활성화, 업데이트, 삭제등을 할 수있습니다.


4) Default

사용자가 다운받지 않아도 브라켓에서 기본적으로 제공하는 확장기능의 사용을 비활성화 할 수 있습니다.




3.추천 확장기능


1) Emmet

코드작성 시 단축어와 tab키를 누르면 자동으로 코드가 완성되는 기능입니다. Emmet의 사용에 관해서는 다음 포스팅에 자세히 설명하도록 하겠습니다.


2) Document Toolbar

기존의 다른 에디터를 사용하던 분들은 브라켓 사용 시 화면 상단에 파일을 선택할 수 있는 탭이 없어 혼란스러울 때가 있습니다. 

기본적인 브라켓의 레이아웃은 파일선택을 좌측영역에서 할 수 있는데요, 상단에 파일 선택영역을 추가할 수 있는 확장기능입니다. 


3) Minimap

브라켓은 미니맵을 기본적으로 제공하지않습니다. 확장프로그램을 사용하면 미니맵을이용해 긴 페이지를 편리하게 볼 수 있습니다.


 


4.PSD Layer Viewer


PSD Layer Viewer는 브라켓에서 기본적으로 제공하는  확장프로그램입니다.

우측 분홍색 동그라미 영역(PSD Layer Viewer)메뉴를 클릭하면 하단에 PSDETCH창이 생성됩니다.

START 버튼을 클릭합니다.


PSD파일을 불러오는 방법은 크게 3가지로 나뉩니다.

1. PSDETCH영역에 원하는 파일을 드롭다운

2. click to open을 클릭하여 파일선택

3. Google Drive / One Drive를 선택하여 클라우드에 업로드된 파일을 여는방법





원하는 PSD파일을 열면 위의 화면과 같이 좌측에는 TOOL들이 보이고 우측에는 INFO메뉴가 보입니다.


1.

 File Info

 파일명, 용량, 크기등의 기본정보를 표시해 준다

 Layers

PSD파일의 Layer기능과 동일하게 레이어를 보여준다 

 Revision&Compare

여러개의 PSD파일을 동시에 한페이지에서 확인할 수 있다. 


2.

 Hand

 포토샵의 HAND툴과 같이 페이지를 움직일 수 있다.

 Color Picker

 원하는 부분의 색상을 스포이드로 선택하여 CSS에 바로 붙여넣기할 수 있다.

 Measure&Extract

 원하는 레이어를 바로 선택가능하며 레이어의 크기를 확인해준다.

 Crop

 원하는 영역을 레이어와 관계없이 선택가능

 Comment

 


3.

 INFO

 선택된 Layer의 정보를 보여준다.

 EXTRACT

 선택된 영역을 따로 저장하거나, 문자로 이뤄진 Layer의 경우 문자를 전체복사할 수 있는 기능이 있다.


'ETC' 카테고리의 다른 글

Bracket(브라켓) 다운로드 및 설치  (0) 2018.01.18

얼마전까지 atom에디터를 사용하다 bracket에디터로 갈아타게 되었습니다.

에디터를 바꾼 가장 큰 이유는 bracket의 PSD Layer Viewer기능 때문인데 이 기능에 대해서는 다음장의 bracket plugin에서 얘기하도록 하겠습니다.


bracket의 설치 


1. http://brackets.io/





2. 파란 Download Bracket 버튼을 클릭 후 다운로드.




3. 다운로드 후 실행파일을 열고 원하는 경로와 기능을 선택하여 "Next"버튼을 누르고 설치시작.

    - Add "brackets" launcher to PATH for command line use :  cmd창에 bracket을 입력시 bracket이 실행되도록 허용.

    - Add Open with Brackets" to Explorer context menus for all files and folders : 모든 파일에서 마우스 우클릭 시 Open with Bracket이 추가된다.


-설치완료.


여기까지 bracket의 설치가 끝났다!!

다음시간에는 브라켓 플러그인 설치방법와 유용한 플러그인의 활용에대하여 알아보도록 하겠습니다.

'ETC' 카테고리의 다른 글

Bracket(브라켓)유용한 확장기능  (0) 2018.01.19

+ Recent posts