JavaScript의 AngularJS 라이브러리를 사용하여 전자 명함을 만드는 방법_AngularJS

WBOY
풀어 주다: 2016-05-16 15:54:15
원래의
1278명이 탐색했습니다.

2015618111425382.png (527×499)

소개

이 예에서는 AngularJS를 포함한 일부 JavaScript 라이브러리를 참조하여 매우 간단한 명함 생성기를 구현했습니다. AngularJS 라이브러리는 다른 JavaScript 라이브러리에 비해 이 작은 애플리케이션에서 많은 기능을 수행하지 않지만, 이 작지만 강력한 AngularJS는 이 애플리케이션에 대한 전체적인 영감입니다.
배경

이 애플리케이션에서는 몇 가지 간단한 작업을 수행해야 합니다. 먼저 CSS를 사용하여 명함을 디자인해야 합니다. 그런 다음 사용자가 실시간으로 데이터를 입력하고 편집할 수 있도록 해야 하는데, 여기서 AngularJS는 필수입니다. 그런 다음 명함의 HTML div 컨테이너를 캔버스로 변환하고 PNG 이미지로 다운로드해야 합니다. 그것은 간단합니다!

코드 사용

여기서는 다음 코드 블록에 대해 설명하겠습니다.

<!DOCTYPE html>
<html>
<head>
  <title>vCard Creator demo</title>
  <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
 
<div id="wrapper" ng-app>
  <h1>Real time vCard Creator</h1>
<div id="editor">
  <input placeholder="Company name" ng-model="cname"/>
  <input placeholder="Company tag line" ng-model="tagline"/>
  <input placeholder="Your full name" ng-model="name"/>
  <input placeholder="Your designation" ng-model="desig"/>
  <input placeholder="Phone number" ng-model="phone"/>
  <input placeholder="Email address" ng-model="email"/>
  <input placeholder="Website url" ng-model="url"/>
  <button id="saveBut">Download vCard as PNG</button>
  
</div>
   
<div id="card">
  
  <header>
    <h4>{{cname}}</h4>
    <p>{{tagline}}</p>
  </header>
  <div id="theBody">
    <div id="theLeft">
      <h2>{{name}}</h2>
      <h5>{{desig}}</h5>
    </div>
    <div id="theRight">
      <p>{{phone}}</p>
      <p>{{email}}</p>
      <p>{{url}}</p>
    </div>
  </div>  
   
</div>
   
</div>
 
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="html2canvas.js"></script>
<script type="text/javascript" src="canvas2image.js"></script>
<script type="text/javascript" src="base64.com"></script>
 
</body>
</html>
로그인 후 복사

애플리케이션의 HTML 구조입니다. 이 구조는 두 부분으로 구성됩니다. 하나는 ID가 편집자인 div이고, 다른 하나는 카드 ID를 가진 div입니다. 전자는 사용자가 정보를 입력할 수 있도록 하는 데 사용되고, 후자는 명함에 정보를 표시하는 데 사용됩니다. 이 두 div는 래퍼 ID를 가진 div로 래핑됩니다. ID가 래퍼인 이 div에서는 ng-app 속성을 추가합니다. 왜냐하면 이 div 컨테이너에 각도를 사용할 것이기 때문입니다. HTML 태그에 ng-app을 추가하면 웹 페이지 어디에서나 각도를 사용할 수 있습니다. 다음으로 사용자 입력을 받을 입력 상자를 만듭니다. 각 입력 상자에 입력 상자에 해당 값을 전달하는 데 사용되는 ng-model과 같은 속성이 있는지 확인하세요. 여기에 ng-model 속성을 넣은 이유는 div의 값을 카드 ID로 실시간 업데이트하기를 원하기 때문입니다. 이제 ID 카드가 있는 div 내부에 이상하게 보이는 이중 괄호를 배치했는지 확인하고 이중 괄호 안에 ng-model의 값을 입력했는지 확인하세요. 기본적으로 입력란에 내용을 입력하면 이중 괄호 안의 값이 즉시 변경됩니다. 그럼 명함 편집은 여기서 마치겠습니다. 우리의 목표는 사용자가 다운로드 버튼을 클릭하면 현재 명함이 이미지로 변환되어 사용자의 컴퓨터에 다운로드되는 것입니다.

#editor{
  width:350px;
  background: silver;
  margin:0 auto;
  margin-top:20px;
  padding-top:10px;
  padding-bottom:10px;
}
input{
  width:90%;
  margin-left:5px;
}
button{
  margin-left:5px;
}
#card{
  width:350px;
  height:200px;
  background:whitesmoke;
  box-shadow: 0 0 2px #323232;
  margin:0 auto;
  margin-top:20px;
}
header{
  background:#323232;
  padding:5px;
}
header h4{
  color:white;
  line-height:0;
  font-family:helvetica;
  margin:7px;
  margin-top:20px;
  text-shadow: 1px 1px black;
  text-transform:uppercase;
}
header p{
  line-height:0;
  color:silver;
  font-size:10px;
  margin:11px;
  margin-bottom:20px;
}
#theBody{
  background:blue;
  width:100%;
  height:auto;
}
#theLeft{
  width:50%;
  float:left;
  text-align:right;
}
#theLeft h2{
  margin-right:10px;
  margin-top:40px;
  font-family:helvetica;
  margin-bottom:0;
  color:#323232;
}
#theLeft h5{
  margin-right:10px;
  font-family:helvetica;
  margin-top:5px;
  line-height:0;
  font-weight: bold;
  color:#323232;
}
 
#theRight{
  width:50%;
  float:right;
  padding-top:42px;
}
#theRight p{
  line-height:0;
  font-size:12px;
  color:#323232;
  font-family:Calibri;
  margin-left:15px;
}
로그인 후 복사

앱의 CSS 스타일입니다. 여기에서는 명함 디자인을 모형화하고 사용자가 정보를 입력할 수 있는 편집 패널을 만듭니다.


<script>
  $(function() { 
   
  $("#saveBut").click(function() { 
     
    html2canvas($("#card"), {
       
      onrendered: function(canvas) {
         
        theCanvas = canvas;
 
        Canvas2Image.saveAsPNG(canvas); 
        
      }
    });
  });
}); 
</script>
로그인 후 복사

마지막으로 HTML 페이지의 본문 닫는 태그 앞에 이 스크립트를 삽입하세요. 이 스크립트에는 다운로드 버튼에 해당하는 이벤트 응답이 포함되어 있습니다. 즉, html2canvas 함수의 기능은 카드의 ID를 가진 div를 HTML 캔버스로 변환하고, 캔버스를 렌더링한 후 . PNG 파일입니다. 이 스크립트를 추가한 후 수행해야 할 모든 작업이 완료되었습니다.
메모

이 canvas2image.js 스크립트 코드는 기본적으로 생성된 파일 이름 끝에 .png 확장자를 사용하지 않습니다. 따라서 이미지를 열 수 없는 경우 파일 이름을 변경하고 파일 이름 끝에 .png 확장자를 추가하세요.
온라인 디버깅 jsFiddle

여기를 클릭하세요

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿