마우스 휠로 0 ~ 100까지 숫자 조절이 가능하게 하는 작업을 하게 되었다.

비록 취소되어 사용은 안했지만, 간단하게 검토하던 것을 적어두려고 한다!

처음에는 <input type="number"> 태그를 사용하여 간단히 작업하려고 했는데,

정책상 브라우저 호환에 문제가 있어서 <input type="text"> 태그로 작업을 진행하게 되었다.

 

HTML

<input id="target" type="text">

 

jQuery

// Firefox
$('#target').on('wheel', function(e){
   e.preventDefault();
   var num = $(this).val();
   
   if(e.originalEvent.deltaY < 0){
     if(num >= 100) return false;

     console.log('업');
   }else{
     if(num <= 0) return false;

     console.log('다운');
   }
});

// 그 외 브라우저
$('#target').on('mousewheel',function (e) {
      e.preventDefault();
      var num = Number($(this).val());

      if(e.originalEvent.wheelDelta > 0){
        if(num >= 100) return false;
		$(this).val(num + 1);
        console.log('업');
        
      }else{
        if(num <= 0) return false;
        $(this).val(num - 1);

        console.log('다운');
      }
});

Firefox만 스크롤 이벤트의 메서드가 약간 다르기때문에 분기하여 작성했다.

브라우저 체크 후 조건문으로 분기하는 작업이 필요하다.

 

Javascript

자바스크립트는 예제를 만들기 위해 작성하였기 때문에 크롬만 테스트를 했다.

const target = document.getElementById('target');

target.addEventListener('mousewheel',function (e) {
      e.preventDefault();
      var num = Number(this.value);
                       
      if(e.wheelDeltaY > 0){
        if(num >= 100) return false;
		this.value = num + 1 ;
        console.log('업');
        
      }else{
        if(num <= 0) return false;
		this.value = num - 1 ;
        console.log('다운');
      }
});

 

 

예제

See the Pen aRjgGO by leeyoonseo (@okayoon) on CodePen.

 

 

기본 input attribute placeholder는......... ie9이하 안되더라..
그래서 span으로 꼼수를 부리고는 했었는데, 플러그인이 있어 간편하게 사용가능하다.
무려 하위브라우저 지원 가능.! (ie 애뮬레이터를 통해 ie5까지 되는 것 확인했다.(windows8.1 기준))
 
HTML
<input type="text" placeholder="이름을 입력해주세요.">

 

JS

<script type="text/javascript" src="/public/javascripts/jquery.min.js"></script>
<script type="text/javascript" src="/public/javascripts/lib/jquery.placeholder.min.js"></script>
<script>

  (function ($) {
      // 이런식으로 쓰면 된다.
      $('input, textarea').placeholder();
  })(jQuery);
  
</script>
 
자세한 것은! ↓↓↓↓↓

https://github.com/mathiasbynens/jquery-placeholder

 

javascript .map 메서드를 알아보자.

새로운 배열을 생성한다.
기존 배열에 영향이 없다.

☆ 배열에 행동을 하여 결과 값을 반환한다.
어렵다 간단히만 이해하고 나중에 보충해야겠다....

어떻게 쓰지?
const num = [1,2,3,4,5];
const result = num.map(item => {
    return item + 10;
});

// result = [11,12,13,14,15]



javascript .filter 메서드를 알아보자.

새로운 배열을 생성한다.
기존 배열에 영향이 없다.

어떻게 쓰지?
원하는 조건으로 필터하면 된다.

list = [1,2,3,4,5];

배열을 한번만 돌았다고 치면
list.filter(item, index, traverse => {
    item = 1
    index = 0
    traverse = [1,2,3,4,5]
});

10 이하의 값을 필터링 할 수 있다.
const list = [10, 5, 20, 6];
const result = list.filter(item => item < 11); 

+ Recent posts