본문 바로가기

분류 전체보기76

[javascript | Vue] 이미지 다운로드 기능 만들기 (canvas/url활용) get으로 받은 소스를 화면에 뿌리고> 그 이미지를 다운로드 받으려면 canvas를 활용해 가능하다. 👉 template (표현되어질 부분) 👉 template (다운로드 버튼) 다운받기mdi-arrow-down-bold-circle 👉 methods a 태그를 임의로 생성해 canvas 속성을 대입해 다운로드 기능을 동작하게 해준다 download() { var a = document.createElement("a"); // a.setAttribute("download", "파일이름" + ".png"); a.setAttribute( "href", document .getElementById("canvas") .toDataURL("image/png") .replace("image/png", "image/.. 2022. 12. 2.
[javascript] 문자 /n 줄바꿈 변환작업 백에서 전달받는 데이터중에는 문단의 특성을 전달받지 못한 경우가 많다 그래서 replace로 /n 를 변환해준다 //cardData /n이 포함된 문자열을 포함한 배열 cardData.forEach((el, index) => { cardData[index].cont = el.contents.replace(/\n/g, " "); }); vue 환경이라 v-html를 활용했지만 p태그 안에 적용해줘도된다 2022. 12. 2.
[javascript] window.open 팝업권한 사파리 문제해결 사파리에선 승인을하지 않으면 팝업창이 띄어지지 않는다 이런오류를 해결하기 위해 window.open을 null 값으로 먼저 띄어놓고 async await 비동기 호출을 통해 axios 호출 이후 미리 띄어진 window창에 url을 넣어주는 방식을 사용했다. // 팝업선언 let popup = window.open( undefined, "payment_pop", "top=10,left=10,width=500,height=600,status=no,menubar=no,toolbar=no,resizable=no" //사이즈설정 ); // 비동기로 url 호출 const url = await axiosService .post("post_url", params) .then((res) => { let url = ".. 2022. 11. 29.
[javascript] youtube embed 소스 자동재생 모바일에서 안된다면 (autoplay 이슈해결) | mobile 자동재생 안됨 유튜브 소스 자동재생 구현하려면 iframe을 사용해 autoplay를 설정해주는것이라고 알고 있을것이다. 사실 몰랐는데 최근 유튜브 영상 소스가 페이지 로드시 자동재생하는 기능을 구현하면서 현재(2022)는 autoplay가 web에서 지원되지 않는다는것을 알게되었다. 그것도 모르고 과거 블로그글들을 찾아보면서 계속 다른 부분에서 오점을 찾고 있었다. (이래서 공식 문서와 업데이트 사항을 명확하게 파악하는것이 중요하다) 결국 어느 블로그에서 autoplay 기능이 web에서만 제공되고 mobile 환경에서는 제공되지 않는다는 이야기를 듣고 여기저기 소스를 탐색해 본 끝에 youtube에서 지원해주는 iframe_api 소스를 활용해 모바일 환경에서도 자동재생 구현이 가능한 소스를 찾았다. 👉 html .. 2022. 11. 25.
[javascript] 스크롤 내릴때 사라지고 올라갈때 나오는 검색바 만들기 (앱 호환) window.addEventListener를 사용하면 매우 많은 이벤트 함수를 실행할 수 있다. 보통은 scroll, mouseWheel 이벤트를 사용해 휠스크린을 내릴시 간단하게 화면을 조작할 수 있다. 👉 mouse wheel 이벤트 보기 Element: wheel event - Web APIs | MDN The wheel event fires when the user rotates a wheel button on a pointing device (typically a mouse). developer.mozilla.org mouse wheel 이벤트를 사용할 경우의 문제점이 휠을 사용하지 않는 앱웹에선 작동하지 않는다는점이다. 이런경우 scroll 이벤트를 사용해 처리하는것이 좋다 👉 scroll 이.. 2022. 11. 23.
[css] input checkbox 스타일 설정하기 :has 부모요소 선택 input checkbox 스타일을 쉽게 지정할 방법은 어떤것이 있을까? 기존에 작성된 더러운 코드들을 다 뜯어고치고 공통으로 스타일을 찾아보는데 확실시 html구조에서는 label 안에 넣어서 input을 적용해주는게 한눈에 보기에도 직관적이고 좋아보였다.(기존에 내가 짯던 코드들은 요소들이 분리되어있어 한눈에 보기 너무 불편했었다) 문제는 input 에 들어갈 체크박스 스타일을 박아찾아보다가 input type값을 활용해 css에서 부모요소를 찾아 고정 스타일을 주는 방법을 생각해냈다. 👉 main.js const TermsWrap = () => { return ( 약관동의 개인정보 수집동의 ); }; input 요소를 체크해 부모 라벨에 스타일을 입혀주었다. input는 타입에따라 스타일을 고정해서.. 2022. 11. 22.
[svg] 개념과 도형의 기본이해하기 xml코드 기반의 확장 가능한 벡터 그래픽 (점과 점 사이를 연결해서 라인의 길이를 계산해서 자동으로 연결시켜줌) 아이콘, 로고, 그래프, 사용자 인터페이스에 자주 사용된다. dom의 일부로써 각 객체별로 html 에서 엘리먼트로 추가됨 특징 벡터기반이기 때문에 이미지의 크기에 상관없이 선명하게 유지됨 모양이 복잡하지 않은 경우에는 용량도 작다. css나 스크립트도 다양하게 조작이 가능하다. 아이콘, 로고, 그래프, 사용자 인터페이스 등에서 사용 단점 선 하나하나가 데이터로 표현되기 때문에 복잡하고 개체수가 많을수록 용량이 증가하여 효율성이 떨어진다. (아이템이나 로고정도에만 사용하는 이유다) 그래픽요소이기때문에 fill 색이 그라데이션이 들어간 svg는 이미지가 깨진다 사용방법 태그상에 백그라운드 이미.. 2022. 11. 19.
[javascript] if 와 switch 에 대해 알아보자 if 문 / switch 문 지정한 조건이 참인 경우 명령문을 실행한다. 조건이 거짓인 경우 또다른 else if 문이나 else 를 사용해 다른 명령문을 실행할 수 있다. 👉 test 값에 따른 명령문 실행 let test = 1; if(test === 1){ alert("1이 맞습니다") } else if(test === 2){ alert("2가 맞습니다") } else { alert("1도 2도 아닙니다.") } 👉 test 값에 따른 함수실행 let test = 1; if(test === 1){ test01(); //조건에 맞는 함수 실행 } else if(test === 2){ test02(); //조건에 맞는 함수 실행 } else { another(); //조건에 맞는 함수 실행 } // 함.. 2022. 11. 19.
[javascript] while 문에 대해 알아보자 for 문의 특징 배열과 함께 주로 사용 횟수 제한이 있다. 초기값을 주고 이 값에게 주어진 조건을 만족시킬때까지 사용 while문의 특징 반복횟수를 정하지 않아도 된다. 주로 파일을 읽고 쓸때 많이 사용한다. while문은 작동하는 원리는 true / false로 구분해서 작동한다 👉 원래의 for문 for문의 경우 정확한 갯수가 필요하기 때문에 로직생성에 어려움이 있는경우가 종종있다. for(let i=0; i 2022. 11. 19.
[Vue] innerWidth 감지해서 resize 이벤트 생성 우선 resize 이벤트를 실행하려면 nextTick을 알아야한다 VueJs - $nextTick() 이란? doozi316.github.io $NextTick으로 갱신형 이벤트를 사용할때 사용합니다. 자바스크립트는 비동기로 처리되는 특성을 가지기 때문에 vue 내부에서 data가 업데이트 되고 난 직후 Vue 가 DOM을 찾지 못하는 경우가 종종 발생하며 이와같은 문제를 해결해주는 vue에서 제공해주는 콜백함수입니다 data() { return { windowWidth:0 } } 우선 window width 데이터를 담을 변수를 선언해줍니다. 👀 mounted this.$nextTick(() => { window.addEventListener("resize", this.onResize); }); 👀 m.. 2022. 11. 16.
반응형