728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery13_CyclePlugin.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.cycle/3.0.3/jquery.cycle.all.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('#shuffle').cycle({ 
            fx:     'shuffle'
            easing: 'easeOutBack'
            delay:  -4000 
        });
    });
</script>
 
 
</head>
<body>
 
    <div id="shuffle">
        <img src="./images/img01.jpg"/>
        <img src="./images/img02.jpg"/>
        <img src="./images/img03.jpg"/>
        <img src="./images/img04.jpg"/>
        <img src="./images/img05.jpg"/>
    </div>
 
</body>
</html>
cs

 

 
더보기

-Description

9 : Cycle plugin 의 CDN,
이미지를 자동으로 넘겨주는 cycle 플러그인

cycle 플러그인 효과를 확인해 볼 수 있는 API 사이트=> http://malsup.com/jquery/cycle/
11 : onload

 

-요약-

 

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JSP' 카테고리의 다른 글

MergeInterval  (0) 2021.03.29
Jquery-요소(태그)추가  (0) 2021.03.29
Jquery- class 추가 및 제거  (0) 2021.03.29
Jquery-EasingFlug 이용해보기  (0) 2021.03.29
Jquery-특수효과적용2  (0) 2021.03.29
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery12_class추가제거.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
 
<style type="text/css">
 
    img{
        width: 200px;
        height: 200px;
    }
    .addSize{
        width: 300px;
        height: 300px;
    }
    .onOffImage{
        display: none;
    }
 
</style>
 
<script type="text/javascript">
 
    $(document).ready(function(){
        $('img').click(function(){
            if ($(this).hasClass('addSize')){ // 있는건 없에고 , 없는건 만든다
                $(this).removeClass('addSize');
            }else{
                $(this).addClass('addSize');
            } 
        });
        $('#btn').click(function(){
            $('img').toggleClass('onOffImage');
        });
    });
 
</script>
 
</head>
<body>
 
    <button id="btn">이미지 on/off</button><br/>
    <img src="./images/img01.jpg"/>
    <img src="./images/img02.jpg"/>
    <img src="./images/img03.jpg"/>
 
</body>
</html>
 
 
 
 
 
 
 
 
 
 
cs
더보기

-Description

GUI :

28 : 클릭된 img태그에 addSize 클래스 속성이 설정되었나 검사한다.
35 : 토글 클래스를 수행함

 

-요약-

클래스 속성 추가 및 제거
// addClass() : 선택된 요소에 인수로 전달받은 클래스를 추가한다.
// removeClass() : 선택된 요소에서 인수로 전달받은 클래스를 제거한다.
// toggleClass() : 선택된 요소에서 인수로 전달받은 클래스가 없으면 추가하고 인수로
// 전달받은 클래스가 있으면 제거한다.
// hasClass() : 인수로 전달받은 값이 선택된 요소에 클래스로 존재하는가 검사해서 존재하면 true,
// 존재하지 않으면 false를 리턴한다.

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JSP' 카테고리의 다른 글

Jquery-요소(태그)추가  (0) 2021.03.29
Jquery-Plugin 적용  (0) 2021.03.29
Jquery-EasingFlug 이용해보기  (0) 2021.03.29
Jquery-특수효과적용2  (0) 2021.03.29
Jquery-특수효과주기  (0) 2021.03.29
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery10_EasingFlugIn.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
 
<style type="text/css">
    body{
        margin: 10px auto;
        width: 500px;
    }
    h2{
        margin: 5px;
        padding: 0px 0.3px; /* 위아래 0px, 좌우는 0.3px */
    }
    p{
        margin: 5px;
        padding: 0px 0.5px;
    }
    .pane{
        background : tomato;
        padding: 10px 20px;
        position: relative;
        border-top: 2px solid skyblue;
    }
    .delete{
        position: absolute;
        top: 10px;
        right: 10px;
        cursor: pointer;  /* 마우스로 가져다대면 손구락모양으로 바뀜 */
    }
</style>
 
<script type="text/javascript">
 
    $(document).ready(function(){  // onload
        $('.delete').click(function(){
            //$(this).parent().slideUp('slow'); 
            $(this).parent().slideUp(1000,'easeOutBounce'); 
        });
        
        $('#view').click(function(){
            //$('.pane').slideDown('slow');
            //$('.pane').show('slow');
            //$('.pane').css('display','block');
            //$('.pane').css('display','block');
            $('.pane').fadeIn('slow');
        });
        
        
    });
 
</script>
 
</head>
<body>
    <button id="view" type="button">보이기</button>
    
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
    <div class="pane">
        <h2>한국을 빛낸 100명의 위인들 1절</h2>
        <p>
            아름다운 이 땅에 금수강산에 단군 할아버지가 터 잡으시고
            홍익인간 뜻으로 나라 세우니 대대손손 훌륭한 인물도 많아
            고구려 세운 동명왕 백제 온조왕 알에서 나온 혁거세
            만주 벌판 달려라 광개토대왕 신라 장군 이사부
            백결선생 떡방아 삼천궁녀 의자왕
            황산벌의 계백 맞서 싸운 관창
            역사는 흐른다
        </p>
        <img class="delete" alt="닫기" src="./images/delete_button.png"/>
    </div>
</body>
</html>
cs
 

 

 
더보기

-Description

GUI :

8 : jquery easing 플러그인 CDN,
easing 플러그인  효과를 볼 수 있는 API 사이트 => https://api.jqueryui.com/easings/
42 : div 태그를 easeOutBounce효과로 슬라이드 업시켜서 display none으로 만듬 .  각종 특수효과 들은

https://api.jqueryui.com/easings/ 사이트에서 미리 볼수 있음

 

46~50 : div 태그를 다시보여줌 아랫문장들 보여주는것은 전부동일

 

-요약-

 

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JSP' 카테고리의 다른 글

Jquery-Plugin 적용  (0) 2021.03.29
Jquery- class 추가 및 제거  (0) 2021.03.29
Jquery-특수효과적용2  (0) 2021.03.29
Jquery-특수효과주기  (0) 2021.03.29
국비-쿠키(Cookie)  (0) 2021.03.19
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery09-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style type="text/css">
 
    a{
        color:#000000;
        text-decoration: none;
        font-weight: bold;
    }
    #box{
        width: 100px;
        height: 100px;
        background: hotpink;
        position: relative;
    }
 
</style>
<script type="text/javascript">
 
    $(document).ready(function(){
        $('.run').click(function(){
            $('#box').animate({'left':'400px','opacity':'0.1'}, 1000,'linear')
                .animate({'top':'400px','opacity':'1'}, 1000,'linear')
                .animate({'left':'0px','opacity':'0.1'}, 1000,'linear')
                .animate({'top':'0px','opacity':'1'}, 1000,'linear')
                .slideUp(500);  
        });
    });
 
</script>
 
</head>
<body>
 
    <p>
        <a href="#" class="run">Run</a>
    </p>
 
    <div id="box"></div>
 
</body>
</html>
cs
더보기

-Description

GUI :

12 : 글자 굵기는 두껍게.
24 : onload 수행
25 : class run이 클릭될 경우 수행
26~30 :  애니메이션 적용, 시계방향으로 한바퀴 돈 후 , 슬라이드업으로 사라짐.
이렇게 연달아 연결된걸 체이닝 이라고함

 

-요약-

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JSP' 카테고리의 다른 글

Jquery- class 추가 및 제거  (0) 2021.03.29
Jquery-EasingFlug 이용해보기  (0) 2021.03.29
Jquery-특수효과주기  (0) 2021.03.29
국비-쿠키(Cookie)  (0) 2021.03.19
JSP-출석 게시판 구현  (0) 2021.03.18
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery08_effect_1.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $(function(){
 
 
        $('p').bind('click',function(){ 
            
            
 
            $(this).css('backgroundColor','orange'); // 태그가 하나만 선택되기 때문에 this 써도됨
            //선택한 요소의 형제(sibling) 요소 중에서 지정한 선택자<p>에 해당하는 요소를 모두 선택한다.
            $(this).siblings('p').css('backgroundColor','white');
        
            if ($(this).is('p:contains(hide)')){
                $('img').hide();
            }
        
            if ($(this).is('p:contains(show())')){
                $('img').show();
            }    
            
            if ($(this).is('p:contains(toggle())')){
                $('img').toggle();
            }
            
            if ($(this).is('p:contains(slideUp())')){
                $('img').slideUp(500);
            }
            
            if ($(this).is('p:contains(slideDown())')){
                $('img').slideDown(500);
            }
            
            if ($(this).is('p:contains(slideToggle())')){
                $('img').slideToggle(500);
            }
            if ($(this).is('p:contains(fadeIn())')){
                $('img').fadeIn(500);
                $('img').fadeTo(500,1);
                //fadeTo 메소드가 실행되서 투명도가 변경되면 변경된 투명도로
                //fadeIn메소드가 실행되기 때문에 fadeIn()메소드에서
                //fadeTo메소드를 실행해 opacity속성값을 1로 다시 설정해준다.
            }
            if ($(this).is('p:contains(fadeOut())')){
                $('img').fadeOut(500);
            }
            if ($(this).is('p:contains(fadeToggle())')){
                $('img').fadeToggle(500);
            }
            
            
            if ($(this).is('p:contains(fadeTo())')){
                $('img').fadeTo(500,0.5); //fadeTo(재생시간,투명도)
            }
            
            if ($(this).is('p:contains(Animation)')){
                $('img').animate( // 이미지 크기 조절 애니메효과
                        {'width':'300px','height':'300px','top':'300px','left':'300px'},//스타일
                        1000//재생시간
                        'swing'//속도함수
                    );
            
                var img2= $('#img').clone().attr('id','img2').attr('src','./images/img02.jpg');
                $('#img').before(img2); 
                        
                //복사해서 추가한 img태그에도 애니메이션을 추가
                $('#img2').animate(
                        {'width':'300px','height':'300px','top':'100px','left':'100px'},//스타일
                        1000//재생시간
                        'swing'//속도함수    
 
                );
                
            }    
        }); // p태그 click 이벤트 
        
        $('h2').click(function(){
            $('p').show();
            $('p').each(function(index){
                $(this).animate(
                    {'top':40 * (index+1+ 'px'},//스타일
                    1000//재생시간
                    'swing'//속도함수
                    function(){  //콜백함수
                        console.log('animate!');
                    }
                );
            });
            
        })
        
        
    });
</script>
 
<style type="text/css">
 
    p{
        width: 150px;
        border: 2px solid skyblue;
        position : absolute;
        left: 10px;
        display: none;
    }
    img{
        width: 200px;
        height: 200px;
        position: absolute;
        left: 200px;
        top: 100px;
    }
 
</style>
 
</head>
<body>
    <h2>이펙트 메소드</h2>
    
    <div>
        <p>hide()</p>
        <p>show()</p>
        <p>toggle()</p>
        <p>slideUp()</p>
        <p>slideDown()</p>
        <p>slideToggle()</p>
        <p>fadeIn()</p>
        <p>fadeOut()</p>
        <p>fadeToggle()</p>
        <p>fadeTo()</p>
        <p>Animation</p>
    </div>
    <div id="div">
        <img id="img" src="./images/img01.jpg"/>
    </div>
</body>
</html>
cs

 

 
더보기

-Description

GUI :

11 : .bind('이벤트',함수) : jquery 이벤트에  함수를 연결한다.
15 : 클릭한 <p>태그의 배경색을 orange 로 변경한다. 하나만 선택됨
17 : 선택한 요소의 형제(sibling) 요소 중에서
 지정한 선택자<p>에 해당하는 요소를 모두 선택한다.
19 : contains() : 인수로 지정된 문자열을 포함하면
true, 포함하지 않으면 false를 리턴.
58 : fadeTo(재생시간,투명도)
62 : animation이 클릭될시 수행.
68 : clone() 메소드로 선택된 요소를 복사해서 새로운 요소를 생성한다.
id 속성이 img인 요소(img태그)를 복사하고 복사된 요소의 id속성을 img2로 지정한다.
69 :  id로 img 태그의  윗줄에 img2를 집어 넣음
82 : h2태그를 클릭할시 수행되는 이벤트
83 : p태그에 display :'None'을 해제함, 하지만
해당 줄이 적용 되어도 , p태그에는 position:absolute가 적용되어 있어서 
정확한 확인이 안됨. 
85 : 애니메이션 효과를 준다
86 : index별로 top의 위치를 다르게 준다

 

-요약-

animate()메소드로 여러 css을 이용해서사용자 이펙트를 정의할 수 있다.
//$('선택자').animate(스타일[,재생시간][,속도함수][,콜백함수]); // []은 생략가능
//스타일 : 이펙트를 구성할 css 스타일속성을 지정한다.
//재생시간 : 이펙트가 지속될 시간
//속도함수 : 이펙트의 시간당 속도를 저장
// swing => 시작,끝 부분에서는 늦게 움직이고 , 중간에 빨라짐
// linear=> 시작,끝,중간, 구분없이 일정한 속도로 움직인다
//콜백함수 : 이펙트 동작이 완료된 후 실행할 함수를 지정한다.

 

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JSP' 카테고리의 다른 글

Jquery-EasingFlug 이용해보기  (0) 2021.03.29
Jquery-특수효과적용2  (0) 2021.03.29
국비-쿠키(Cookie)  (0) 2021.03.19
JSP-출석 게시판 구현  (0) 2021.03.18
JSP-인클루드 액션태그 이용  (0) 2021.03.14
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery07_DOM탐색.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style type="text/css">
 
    a{
        color:white;
        text-decoration: none;
    }
    .menu{
        background:black;
        width: 150px;
        border : 1px solid tomato;
        transition: 0.4s;
    }
    .menu:hover{
        background : hotpink;
        width: 300px;
    }
    div{
        color: white;
    }
    div:hover,a:hover{/*  hover는 마우스 올렸을때 발생하는 이벤트 */
        background: hotpink;
        color : skyblue;
        text-decoration: none;
    }
</style>
<script>
    $(document).ready(function(){
        //class 속성이 menu인 모든 div 태그의 자식인 div 태그를 숨긴다.
        //$('.menu > div').css('display','none');
        $('.menu > div').hide();
        
        //hover() : 자바스크립트의 mouseenter , mouseleave 이벤트를 하나의 이벤트로
        //연결하고 선택된 요소에서 mouseenter , mouseleave 이벤트가 발생되었을때 설정된
        //함수가 실행된다.
        // mouseenter 이벤트 : 마우스가 선택된 요소 위로 올라오면서 발생된다.
        //mouseleave 이벤트 : 마우스가 선택된 요소에서 빠져나가면 발생된다.
        //hover(mouseenter 이벤트가 발생되면 실행할 함수, mouseleave 이벤트가 실행되면 발생될 함수)
        $('.menu').hover(
            function(){
                //stop() : 선택된 요소에서 실행중인 모든 이펙트 효과를 즉시 중지시킨다.
                $(this).children('div').stop().slideDown(500);            
            },
            function(){
                $(this).children('div').stop().slideUp(500);            
                
            }
        );
    });
</script>
 
</head>
<body>
 
    <h2>DOM 탐색 메소드</h2>
 
    <div id="menu1" class="menu">
        <a href="./Jquery07_DOM탐색_1.html">필터링 메소드</a>
        <div>first</div>
        <div>eq()</div>
        <div>slice()</div>
        <div>last</div>
        <div>&npsp;</div>
    </div>
    <div id="menu2" class="menu">
        <a href="./Jquery07_DOM탐색_1.html">필터링 메소드</a>
        <div>find()</div>
        <div>children()</div>
        <div>parent()</div>
        <div>next()</div>
        <div>prev</div>
        <div>&npsp;</div>
    </div>
    <div id="menu3" class="menu">
        <a href="./Jquery07_DOM탐색_1.html">필터링 메소드</a>
        <div>add()</div>
        <div>is()</div>
        <div>&npsp;</div>
    </div>
 
</body>
</html>
cs
더보기

-Description

GUI :

12 : 밑줄은 none
18 : 마우스를 menu를 포함하는 태그에 옮겼을때 20번째 줄이 가동됨. 이떄 변화되는 시간이
transition 으로 0.4초임
34 : onload 수행 
37 : class 값으로 menu를 가지는 태그의  하위태그중 div태그들에 hide속성을 적용.

 

-요약-

 

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JQuery+JAVA-SCRIPT' 카테고리의 다른 글

Jquery-form연습3  (0) 2021.03.29
Jquery-속성선택자  (0) 2021.03.25
JQuery-선택자  (0) 2021.03.25
JQuery-기본설정 및 이미지처리  (0) 2021.03.24
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery06_form연습3.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
 
<script>
$('#infoBox').focus();//text에 포커스를 넣어줌
                    
    $(document).ready(function() {
            $('.error').hide();  // onload되자마자 class가 error로 지정된 영역을 숨김
            
            $('#single').submit(function(){
                
                var userid=$('#infoBox').val().trim();
                if ( userid == null || userid ==''){
                    $('#infoBox').val('');
                    $('.error').show();
                    return false;
                }
                
                return true;
            });
            
            $('#confirm').click(function(){
                //선택된 과일 가격이 표시될 div 태그 내부의 내용을 지워준다.
                //document.getElementById('result').innerHTML='';//js일 경우
                $('#result').empty();
                
                //input type이 checkbox 혹은 radio 일 경우 :checked를 이용
                //참고로 , select 태그는 option:selected 를 이용
                var count = $('input[name=chk]:checked').length
                if ( count == 0){
                } else{
                    $('input[name=chk]:checked').each(function(index){   //checked 된것들을 선택
                        //체크한 체크 상자중에서 index에 해당되는 요소 1개를 얻어온다.
                        var chk = $('input[name=chk]:checked').eq(index);
                        $('#result').append('과일 이름 : '+chk.next().text()+', 가격 : '+chk.val()+'</br>');
                    });
                }
            });
            
             $('input[name=chk]').click(function(){
                //name 속성 값이 chk인 요소의 갯수로써,
                //체크된 요소의 갯수를 비교한다
                if( $('input[name=chk]').length==$('input[name=chk]:checked').length ){
                    $('input[name=all]').prop('checked',true);//checked의 값을 true로 변경하라.
                }else{
                    $('input[name=all]').prop('checked',false);//checked의 값을 false로 변경하라.
                }
             });
    
        $('input[name=all]').click(function(){
            var checked= $('input[name=all]').prop('checked');
            $('input[name=chk]').each(function(index){
                //$('input[name=chk]').eq(index).prop('checked',checked);
                $(this).prop('checked',checked);//윗 명령어와 동일
            });
        });
    
    });
 
</script>
 
</head>
<body>
 
    <form id="single" action="ok.html" method="post">
        <div>
            <span>사용자 ID</span>
            <input id="infoBox" type="text" name="userid"/>
            <span class="error" style="color: red; font-weight:bold;">반드시 입력해야 합니다</span>
        </div>
        <input type="submit" value="입력하기"/>
    </form>
    
    <fieldset style="width: 300px">
        <legend>체크 여부 확인</legend>
        <input type="checkbox" name="all"/>전체선택<br/>
        <input type="checkbox" name="chk" value="1000"/><b>사과</b><br/>
        <input type="checkbox" name="chk" value="2000"/><b>바나나</b><br/>
        <input type="checkbox" name="chk" value="3000"/><b>오렌지</b><br/>
        <input id="confirm" type="button" value="확인"/><br/>
        <span>선택한 과일 가격</span>
        <div id="result">
        
        </div>
    </fieldset>
 
</body>
</html>
cs
더보기

-Description

GUI :

12 : text에 포커스를 넣어줌
15 : id 속성이 single로 지정된 form에서  submit 버튼이 클릭되면 실행할 이벤트를 지정한다
17 : 텍스트에 있는 글을 trim 처리후 userid에 저장
18~22 : userid에 들어 있는 값이 올바르지 않다면 해당 텍스트를 공백으로 만든후 ,
class 가 error인 태그를 보여준다. 그리고 false를 반환.

21,24 :     // form의 유효성을 검사해서 오류가 발생되면 false를
//리턴시켜 action페이지로 넘어가지 않게 한다.
//반면 true가 리턴되면 action 페이지로 넘어감
27~43 : 체크 박스를 선택하고 확인 버튼을 클릭하면 체크 여부를 확인해서
그 결과를 id속성이 result로 지정된 div 태그 내부에 출력한다.
30 : id가 result인 태그에서,  내부의 내용을 지운다.
34: name속성으로 chk가 지정된 체크상자의 체크된 항목 개수를 검사한다.
40 : .next() : 선택된 요소 바로 다음에 위치한 형제 요소 한개를 선택한다.
45~53 : name 속성이 chk인 체크상자가 클릭되면 
모든 체크 상자가 체크되었나 검사해서 전체 선택 체크 상자를 선택 또는 해제한다.
49 : 모든체크상자가 체크되면 name 속성이 all 인 요소의 checked 프로퍼티를 
true로 변경한다.
55~61 : 전체 선택 체크박스가 클릭되면 모든 체크상자를 체크 또는 해제한다.
56 :  prop 를 이용해 속성을 가져옴

 

-요약-

 

형제(sibling) 요소 탐색
//.siblings() : 선택된 요소의 형제 요소 중에서 지정한 선택자에 해당되는 모든 요소를 선택한다.
//.next() : 선택된 요소 바로 다음에 위치한 형제 요소 한개를 선택한다.
//.nextAll() : 선택된 요소 바로 다음에 위치한 형제 요소를 모두 선택한다.
//.nextUntil() : 선택된 요소 바로 다음에 위치한 형제 요소 중에서 지정한 선택자에 해당되는 요소 바로 이전까지의 요소를 모두 선택한다.
//.prev() : 선택된 요소 바로 이전에 위치한 형제 요소를 선택한다.
//.prevAll() : 선택된 요소 바로 이전에 위치한 형제 요소를 모두 선택한다.
//.prevUntil() : 선택된 요소 바로 이전에 위치한 형제 요소 중에서 지정한 선택자에 해당되는 요소 바로 다음까지의 요소를 모두 선택한다.

//Jquery 에서 input 요소의 선택
// :button : type 속성이 'button'인 모든 요소를 선택한다.
// :checkbox : type 속성이 'checkbox'인 모든 요소를 선택한다.
// :file : type 속성이 'file'인 모든 요소를 선택한다.
// :image : type 속성이 'image'인 모든 요소를 선택한다.
// :password : type 속성이 'password'인 모든 요소를 선택한다.
// :radio : type 속성이 'radio'인 모든 요소를 선택한다.
// :reset : type 속성이 'reset'인 모든 요소를 선택한다.
// :submit : type 속성이 'submit'인 모든 요소를 선택한다.
// :text : type 속성이 'text'인 모든 요소를 선택한다.
// :checked : type 속성이 'checkbox' 또는 'radio'인 요소 중에서 체크된 모든 요소들를 선택한다.
// :selected : option 요소 중에서 선택된 모든 요소들를 선택한다.
// :focus : 현재 포커스를 가지고 있는 요소를 선택한다.
// :disabled : 비활성화 되어있는 모든 요소를 선택한다.
// :enabled : 활성화 되어있는 모든 요소를 선택한다.

 

javascript는 value 속성을 사용해서 ~~~~~.value 형태로 값을 얻어오고 ~~~~~.value = '값' 형태로 값을 저장한다.
jQuery에서는 value 대신 val() 메소드를 사용해서 ~~~~~.val() 형태로 값을 얻어오고 ~~~~~.val('값') 형태로 값을 저장한다.
아래와 같이 사용하면 input 태그의 type 속성의 값이 text인 요소가 여러개 있더라도 첫 번째 요소의 값만 얻어올 수 있다.
var docs = $('input:text').val();

 

javascript는 innerHTML을 사용해서 태그 내부에 텍스트를 넣어주지만 jQuery는 text() 메소드로 넣어준다.
text() 메소드는 html 태그를 지원하지 않고 html() 메소드는 html 태그를 지원한다.
$('#a').text('<h1>doc<h1>'); // html 태그를 지원하지 않기 때문에 <h1>doc<h1> 가 그대로 들어감

 

//javascript는 onclick(클릭이벤트), onchange(변화이벤트)와 같이 이벤트가 'on'으로 시작하지만 jQuery는 'on'을 붙이지 않는다. 
/*  //js 에서 select 태그를 컨트롤
     var selEle = document.getElementsByTagName('select')[0];
          selEle.onchange = function() {
          //selectedIndex : 콤보 박스에서 선택된 option 항목의 index를 얻어온다.
          //options : 콤보 상자의 <option> 태그에 입력된 항목을 배열 형태로 기억하는 객체
          var doc = document.getElementsByTagName('input')[1];
          doc.value = selEle.options[selEle.selectedIndex].value;
          }
*/

 

//Jquery에서 select태그를 컨트롤
$('select:eq(0)').change(() => {
     selValue = $('select:eq(0) > option:selected').val();  //선택된 option의 value값을 가져옴
     $('input:text:eq(1)').val(selValue);
});


input 태그 중에서 type이 text인 요소를 선택해서 배경색 지정하기
/*  //js로 표현
var obj = document.querySelectorAll('input');
for (var i = 0; i < obj.length; i++) {
//getAttribute() : 인수로 지정된 속성의 값을 얻어온다.
     if (obj[i].getAttribute('type') == 'text') {
          obj[i].style.backgroundColor = 'yellowgreen';
     }
}
*/
// Jquery 로 표현
//$('input[type=text]')..css('backgroundColor', 'skyblue');
$('input:text').css('backgroundColor', 'tomato');


//콤보 박스는 한 번에 한 개만 선택되기 때문에 $('select[name=email]:eq(0) > option:selected')와 
//$(this)는 같은 의미로 사용되지만 arrow 함수를 사용할 때는 $(this)가 동작되지 않는다.


//each() : 선택된 요소들의 인덱스를 0 부터 1씩 증가시키며 차례대로 함수의 인수로 전달한다.
//$('input:checkbox[name=hobbies]:checked').each(function(index) {
~
});

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JQuery+JAVA-SCRIPT' 카테고리의 다른 글

Jquery-메뉴에 특수효과 주기  (0) 2021.03.29
Jquery-속성선택자  (0) 2021.03.25
JQuery-선택자  (0) 2021.03.25
JQuery-기본설정 및 이미지처리  (0) 2021.03.24
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery03_속성선택자.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
 
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
 function imgSize(){
     /* var imgs=document.getElementsByTagName('img');
     for(var i=0;i<imgs.length;i++){
         imgs[i].style.width='200px';
         imgs[i].style.height='200px';
     } */  // js방식
     
     $('img').css({'width':'200px','height':'200px'}); //Jquery 방식
 }
 
 function idSelector(){
     var imgs=document.querySelectorAll('#selId');
     for(var i=0;i<imgs.length;i++){
         imgs[i].style.display='none';
     }  // js 방식 모든id속성에적용
     
     //$('#selId').hide();   최초의 id에만 적용
 }
 
 function classSelector(){
    /*  var selClass=document.querySelectorAll('.selClass');
     for(var i=0;i<selClass.length;i++){
         selClass[i].style.opacity='0.5';
     } */    //js방식
     
     $('.selClass').css('opacity','0.5');  // Jquery방식
 }
 
 function includeSelector(){
     //$('img[id]').css('opacity','0.2'); //img태그의 id속성이 있는것만 적용
     //$('img[class]').css('opacity','0.2'); //img태그의 class속성이 있는것만 적용
     //$('img[title=img02]').css('opacity','0.2'); // title속성값이 img02 인 것에 스타일적용
     //$('img[title*=img02]').css('opacity','0.2'); // tile 속성값으로 img02라는 단어가 포함된것 찾음
     //$('img[title$=img002]').css('opacity','0.2'); //지정된 문자열로 끝나는 모든 요소를 선택한다.
     //$('img[title^=image02]').css('opacity','0.2'); //지정된 문자열로 시작하는 모든 요소를 선택한다.
     //$('img[title!=img04]').css('opacity','0.2'); //지정된 문자열과 같지 않은 모든 요소를 선택한다.
 }
 
//    속성(attribute)과 프로퍼티(property)의 차이점
//    속성이란 html 요소가 추가적인 정보를 가지고 있는 이름과 값의 한 쌍을 말한다.
//    프로퍼티란 속성을 객체화 했을 때 html DOM 트리 내부에서의 값을 말한다.
//    <input type="checkbox" name="chk" checked="checked"/>
//    위의 <input> 태그 요소는 checked 라는 속성을 가지고 있으며 속성 값은 "checked" 이며 만약에 해당 체크 박스가 선택되었을 때 checked 속성의 
//    프로퍼티는 "true" 이다.
 
//    속성과 프로퍼티 설정
//    .attr() : 선택된 요소 집합의 첫 번째 요소로 지정된 속성 값을 리턴하거나 선택된 요소의 지정된 속성을 전달받은 값으로 설정한다.
//    .removeAttr() : 지정된 속성을 제거한다.
//    .prop() : 선택된 요소 집합의 첫 번째 요소로 지정된 프로퍼티 값을 리턴하거나 선택된 요소의 지정된 프로퍼티를 전달받은 값으로 설정한다.
//    .removeProp() : 지정된 프로퍼티를 제거한다.    
    
 function changeImg(){
     console.log($('td  img').attr('src')) // 속성값<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
 function imgSize(){
     /* var imgs=document.getElementsByTagName('img');
     for(var i=0;i<imgs.length;i++){
         imgs[i].style.width='200px';
         imgs[i].style.height='200px';
     } */  // js방식
     
     $('img').css({'width':'200px','height':'200px'}); //Jquery 방식
 }
 
 function idSelector(){
     var imgs=document.querySelectorAll('#selId');
     for(var i=0;i<imgs.length;i++){
         imgs[i].style.display='none';
     }  // js 방식 모든id속성에적용
     
     //$('#selId').hide();   최초의 id에만 적용
 }
 
 function classSelector(){
    /*  var selClass=document.querySelectorAll('.selClass');
     for(var i=0;i<selClass.length;i++){
         selClass[i].style.opacity='0.5';
     } */    //js방식
     
     $('.selClass').css('opacity','0.5');  // Jquery방식
 }
 
 function includeSelector(){
     //$('img[id]').css('opacity','0.2'); //img태그의 id속성이 있는것만 적용
     //$('img[class]').css('opacity','0.2'); //img태그의 class속성이 있는것만 적용
     //$('img[title=img02]').css('opacity','0.2'); // title속성값이 img02 인 것에 스타일적용
     //$('img[title*=img02]').css('opacity','0.2'); // tile 속성값으로 img02라는 단어가 포함된것 찾음
     //$('img[title$=img002]').css('opacity','0.2'); //지정된 문자열로 끝나는 모든 요소를 선택한다.
     //$('img[title^=image02]').css('opacity','0.2'); //지정된 문자열로 시작하는 모든 요소를 선택한다.
     //$('img[title!=img04]').css('opacity','0.2'); //지정된 문자열과 같지 않은 모든 요소를 선택한다.
 }
 
 
//    속성과 프로퍼티 설정
//    .attr() : 인자가 하나일 경우 , 선택된 요소 집합의 첫 번째 요소로 지정된 속성 값을 리턴.
//         인자가 두개 일 경우 , 속성을 둘째인자값으로 설정한다.
//    .removeAttr() : 지정된 속성을 제거한다.
//    .prop() : 선택된 요소 집합의 첫 번째 요소로 지정된 프로퍼티 값을 리턴하거나 선택된 요소의 지정된 프로퍼티를 전달받은 값으로 설정한다.
//    .removeProp() : 지정된 프로퍼티를 제거한다.    
 
 function changeImg(){
     console.log($('td  img').attr('src')) //속성값을 얻어온다    결과로 ./images/img01.jpg 을 뿌려준다.
     console.log($('td  img').attr('src',"./images/img05.jpg")) // 속성값을 변경한다.
     console.log($('td > span > img').removeAttr('src'));//속성 제거
 }
 
</script>
 
</head>
<body>
 
    <h2>이미지 크기를 모두 200px * 200px로 설정하기</h2>
    <button type="button" onclick="imgSize()">클릭!!</button>
    <h2>이미지 중에서 id 속성이 selId인 이미지 숨기기</h2>
    <button type="button" onclick="idSelector()">클릭!!</button>
    <h2>이미지 중에서 class 속성이 selClass인 이미지 투명도 변경하기</h2>
    <button type="button" onclick="classSelector()">클릭!!</button>
    <h2>이미지 중에서 title 속성값에 '02'가 포함된 이미지 투명도 변경하기</h2>
    <button type="button" onclick="includeSelector()">클릭!!</button>
    <h2>이미지 바꾸기</h2>
    <button type="button" onclick="changeImg()">클릭!!</button>
 
    <table>
        <tr>
            <td><img id="selId" title="img01" src="./images/img01.jpg"/></td>
            <td><img title="image02 img02" src="./images/img02.jpg"/></td>
            <td><img class="selClass" title="img023" src="./images/img03.jpg"/></td>
            <td><img class="selClass" title="img04+" src="./images/img04.jpg"/></td>
        </tr>
        <tr>
            <td><img id="selId" title="img01" src="./images/img01.jpg"/></td>
            <td><span><img title="img02 img002" src="./images/img02.jpg"/></span></td>
            <td><img class="selClass" title="img023" src="./images/img03.jpg"/></td>
            <td><img class="selClass" title="img04-img04" src="./images/img04.jpg"/></td>
        </tr>
    </table>
 
</body>
</html>
cs
더보기

-Description

GUI :

17 : img태그들에 스타일을 지정
26 : Id값이 selId인 최초의 태그를 숨긴다.
35 : class 속성값으로 selClass를 가지는 모든 태그에 스타일지정. 투명도를 반으로 만든다.

 

-요약-

 

태그와 태그에 지정된 속성 및 속성값으로 요소 찾기
// 태그이름[속성이름] : 지정된 속성을 가지고 있는 모든 요소를 선택한다.
// 태그이름[속성이름=문자열] : 속성 값이 지정된 문자열과 일치하는 모든 요소를 선택한다. 완전일치
// 태그이름[속성이름~=문자열] : 지정된 문자열이 공백을 경계로 포함된 모든 요소를 선택한다. 단어포함
// 태그이름[속성이름*=문자열] : 지정된 문자열이 포함되는 모든 요소를 선택한다. 문장포함
// 태그이름[속성이름$=문자열] : 지정된 문자열로 끝나는 모든 요소를 선택한다.
// 태그이름[속성이름^=문자열] : 지정된 문자열로 시작하는 모든 요소를 선택한다.
// 태그이름[속성이름!=문자열] : 지정된 문자열과 같지 않은 모든 요소를 선택한다.
// 태그이름[속성이름|=문자열] : 지정된 문자열 또는 문자열-로 시작하는 모든 요소를 선택한다.

속성과 프로퍼티 설정
// .attr() : 인자가 하나일 경우 , 선택된 요소 집합의 첫 번째 요소로 지정된 속성 값을 리턴.
//          인자가 두개 일 경우 , 속성을 둘째인자값으로 설정한다.
// .removeAttr() : 지정된 속성을 제거한다.
// .prop() : 선택된 요소 집합의 첫 번째 요소로 지정된 프로퍼티 값을 리턴하거나 선택된 요소의 지정된 프로퍼티를 전달받은 값으로 설정한다.
// .removeProp() : 지정된 프로퍼티를 제거한다.

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JQuery+JAVA-SCRIPT' 카테고리의 다른 글

Jquery-메뉴에 특수효과 주기  (0) 2021.03.29
Jquery-form연습3  (0) 2021.03.29
JQuery-선택자  (0) 2021.03.25
JQuery-기본설정 및 이미지처리  (0) 2021.03.24
728x90

-개발환경-

IDE : Eclipse IDE for Enterprise Java Developers ver-2020-06 (4.16.0)
Tomcat : Tomcat v8.0 Server
JQuery : jquery-3.6.0.min.js


-설정-

설정에는 두가지 방법이 있는데 , 
1. 인터넷 서비스 제공자로부터 직접 연결하여 데이터를 전송받는 CDN방식(당연히 네트워크필수)
밑 명령줄을 ecilipse의 head태그내에 삽입. 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

2. JQuery 메인 홈페이지에서 js 파일을 다운후 script문 작성.
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>

 

-jquery02_선택자.html-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>
 
<script type="text/javascript">
 
    /* $(document).ready(function(){
        //alert('Hello~~~');
        $('div').eq(0).css({'border':'2px solid red','width':'300px'});
        
    }); */
    
    /* $(function(){  //윗명령어와 같은표현
        $('div:eq(0)').css({'border':'2px solid red','width':'300px'});
        
    });  */
 
    $(() => {  //윗명령어와 같은표현    ECMAScript 6  에서 지원
        $('div:eq(0)').css({'border':'2px solid red','width':'300px'});
        
    }); 
 
    function a1(){
        
        /* var span = document.getElementsByTagName('span');
        for( var i=0; i<span.length;i++ ){
            span[i].style.color='tomato';
        } */  // Javascript 방식
        
        $('span').css('color','blue'); // Jquery 방식
        
    }
    
    function a2(){
        /* var t1=document.querySelectorAll('#t1');
        for( var i=0; i<t1.length;i++ ){
            t1[i].style.color='green';
        }  */  // javascript 방식 ,  id가 다수 선택됨
        
        $('#t1').css('color','green'); //JQuery 방식 , id가 최초의 한개만 선택됨
    }
    
    function a3(){
        $('.t2').css('color','purple'); 
    }
    
    function a4(){
        $('li > span').css('color','red'); // 다수가 선택됨
    }
    
    function a5(){
        $('li span').css('color','red'); // 자손이는 공백으로 구분  ,  자손에는 자식도 포함
    }
    
    
    // :nth-child(), :nth-last-child()
    // 형제 요소중에서 특정 순서에 있는 요소를 선택하는 선택자
    // :nth-child() 는 앞에서 부터 셈
    //:nth-last-child() 는 뒤에서 부터 센다.
    // 인수로 숫자 및 연산식을 사용할 수 있고 odd(홀수) , even(짝수)도 사용할 수 있다.
    function a6(){
        
        //eq(index)는 index가 0부터 시작하고, nth-child의 인자는 1부터 시작함
        //$('li:nth-child(1)').css('backgroundColor','lime'); //첫 li 에 스타일적용
        //$('li:nth-last-child(1)').css('backgroundColor','lime'); //마지막 li 에 스타일적용
        //$('li:nth-child(odd)').css('backgroundColor','skyblue'); // 홀수 번째 li 에 스타일적용
        //$('li:nth-child(even)').css('backgroundColor','skyblue'); // 짝수 번째 li 에 스타일적용
        
        //nth-child()나 nth-last-child() 에 연산식은 n을 사용해서 작성한다.
        //n은 자동으로 0부터 1씩 증가하는 정수이고  곱하기 연산시 '*'를 사용하지 않지만, + -는 사용한다.
        //$('li:nth-child(2n)').css('backgroundColor','cyan'); // even과 똑같음
        //$('li:nth-child(2n+1)').css('backgroundColor','cyan'); // odd와 똑같음
        $('li:nth-child(3n)').css('backgroundColor','cyan'); 
    }
    
    function a7(){
        $('li:first-child').css('backgroundColor','cyan'); 
    }
    
    function a8(){
        $('li:last-child').css('backgroundColor','cyan'); 
    }
</script>
 
</head>
<body>
 
    <h2>셀렉터 표현식</h2>
    <div>
        <ul>
            <li><span>태그로 선택하기</span></li>
            <li id="t1">id로 선택하기</li>
            <li class="t2">class로 선택하기</li>
            <li><span>자식선택자로 선택하기</span></li>
            <li><b><span>자손 선택자로 선택하기</span></b></li>
            <li>nth-child 선택자로 선택하기</li>
            <li id="t1">first로 선택하기</li>
            <li class="t2">last로 선택하기</li>
        </ul>
    </div>
 
    <div>
        <button type="button" onclick="a1()">태그</button>
        <button type="button" onclick="a2()">아이디</button>
        <button type="button" onclick="a3()">클래스</button>
        <button type="button" onclick="a4()">자식선택자</button>
        <button type="button" onclick="a5()">자손선택자</button>
        <button type="button" onclick="a6()">nth-child</button>
        <button type="button" onclick="a7()">first-child</button>
        <button type="button" onclick="a8()">last-child</button>
    </div>
 
 
</body>
</html>
cs
더보기

-Description

GUI :

22~25 : onload수행으로 , div태그들중 첫번째 태그의 스타일을 지정.
44 : id로 t1인 태그들중 첫번째 태그의 스타일을 지정.
48 : 클래스로 t2인 태그들을 선택해서 스타일지정
52 : li 태그의 자식 태그로 span태그가 있는 것을 선택해서 스타일지정
56 : li태그의 자손 태그(자식 포함)로 span태그가 있는 것을 선택해서 스타일 지정.
77 : li태그의 0,3,6,9... .번째 태그들에 스타일 적용
81 :  같은 부모 태그를 가지는 형제 li 태그들중에서 첫번째 태그만 선택한다.

 

-요약-

 

 :nth-child(), :nth-last-child()    둘다 인자는 1부터 시작.
// 형제 요소중에서 특정 순서에 있는 요소를 선택하는 선택자
// :nth-child() 는 앞에서 부터 셈
//:nth-last-child() 는 뒤에서 부터 센다.
// 인수로 숫자 및 연산식을 사용할 수 있고 odd(홀수) , even(짝수)도 사용할 수 있다.

// :first-child : 같은 부모 태그를 가지는 형제 태그들중에서 첫번째 태그만 선택한다.
// :last-child : 같은 부모 태그를 가지는 형제 태그들중에서 마지막 태그만 선택한다.

 

-마침글-

단순문법공부는 boring하다..

인용

 

'21년이전 > 국비-JQuery+JAVA-SCRIPT' 카테고리의 다른 글

Jquery-메뉴에 특수효과 주기  (0) 2021.03.29
Jquery-form연습3  (0) 2021.03.29
Jquery-속성선택자  (0) 2021.03.25
JQuery-기본설정 및 이미지처리  (0) 2021.03.24
728x90

-개발환경-

IDE : Eclipse IDE for Java Developers Version: 2020-03 (4.15.0)

공부 자료 :  www.inflearn.com/course/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%B0%94/lecture/22652

-문제-

날마다의 온도모음 리스트가 주어 진다. 그 리스트를 통해 당신은 더 따뜻한 날까지 몇일을 기다려야하는지
알수 있다, 각각의 날에 대해 몇일을 기다리면 온도가 더 따뜻해지는지를 리스트로 반환하라.
적합한 날이 없다면 , 0을 넣어 반환하라.

 

ex)
T = [73, 74, 75, 71, 69, 72, 76, 73], 
your output should be [1, 1, 4, 2, 1, 1, 0, 0].

 

Note) 측정온도의 갯수는 [1,30000] 이다.
온도의 범위는 [30,100] 이며 정수이다. 

 

-접근법-

 

윗 개념 + 

for 문을 이용하여 nums 원소에 하나씩 접근할 시 , 문제해결을 위해서

반드시 역행하는 순서가 필요하게 되므로 스택을 이용.

 

 

-DailyTemperature.java-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package codingTest;
 
import java.util.Stack;
 
public class DailyTemperature  {
 
    public static void main(String[] args) {
        int[] nums= {73,74,75,71,69,72,76,73};
        int[] res = solve(nums);
        
        //outPut
        for(int i : res) {
            System.out.print(i+" ");
        }
    }
    public static int[] solve(int[] temper) {
        //1. ds
        Stack<Integer> stack=new Stack<>();
        int[] result=new int[temper.length];
        
        //2. for,while + algo
        for(int i=0; i<temper.length;i++) {
            System.out.println("==================================");
            System.out.println("temper(온도): "+temper[i]);//test
 
            while(!stack.isEmpty() && temper[stack.peek()] <temper[i]  ) {
                //====================test begin=======================
                Stack<Integer> stemp=new Stack<>();//test
                stemp=(Stack<Integer>) stack.clone();//test
                System.out.print("맨 위-> 맨아래 순 stack: ");
                while(!stemp.isEmpty()) {//test while
                    System.out.print(stemp.pop()+" ");
                }
                System.out.println();//test
                //====================test end=======================
                
                
                int index=stack.pop();
 
                //====================test begin=======================
                System.out.println("i : "+i+" index : "+index);//test
                //====================test end=======================
                
                result[index]= i-index; 
                
                //====================test begin=======================
                stemp=(Stack<Integer>) stack.clone();//test
                System.out.print("맨 위-> 맨아래 순 stack: ");//test
                while(!stemp.isEmpty()) {//test while
                    System.out.print(stemp.pop()+" ");
                }
                System.out.println();//test
                //====================test end=======================
                
            }
            stack.push(i);
        }
        return result;
    }
}
 
cs
더보기

-Description

18 : 온도의 인덱스를 값으로 하는 stack 생성
19 : 결과를 담을 result 배열 생성
26 : 스택에 데이터가 있고  ,    온도[스택의 꼭대기 값] <  온도[i] 을 만족하면 반복문 수행
38 : index에 스택의 peek 데이터 삽입, 그리고 pop.
44 : 접근법 이미지에서 설명한 내용
56 : for 문 내부의 끝에서 stack 온도 i를 삽입 
58 : 배열 result 반환

점검을 위한 명령문 결과 출력

 

개념이해가 어려워서 직접 데이터의 흐름에 따라 아래와 같이 작성해보았다.

의사코드 + 수행과정1

 

수행과정2

 

수행과정3

 

-추가개념-

Stack
//필요선언문
import java.util.Stack;

//객체생성
Stack<지네릭스> stack=new Stack<>()

//관련함수
stack.isEmpty() // 비어있으면 true반환 그외엔 false반환

stack.pop() // 꼭대기값을 pop함과 동시에 데이터 반환
stack.peek() // 단순 꼭대기 값을 반환
stack.push(값); // 값을 stack에 삽입 

 

-마침글-

브루트 포스 방식으로 스택문제에 접근하면 낭패를 볼 수 있다고 생각하게 되었다.

스택만의 유형에 익숙해질 필요가 있다.

 

인용

'21년이전 > 자바-Algorithm' 카테고리의 다른 글

TwoSum  (0) 2021.03.22
MoveZeros  (0) 2021.03.21
MeetingRoom  (0) 2021.03.20

+ Recent posts