HTML5 でジェスチャー画面のロック解除を実装_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:39:51
オリジナル
1054 人が閲覧しました

詳細はクリックしてください

エフェクト表示


実装原理

ロック解除された円を描画するには、HTML5キャンバスを使用しますこれらのサークルのロックを解除するには、イベントをタッチします。コード。

  1. function createCircle() {// ロック解除ポイントの座標を作成し、キャンバスのサイズに従って半径を均等に分配します
  2. var n =chooseType;// n*n 行列を描画します
  3. lastPoint = [];
  4. arr = [];
  5. restPoint = [];
  6. r = ctx.canvas.width / (2 + 4 * n);// 式の計算半径はサイズに関連します(var i = 0; i< n; i ++){
  7. 3 * r、
  8. *r
  9. コードのコードの
  10. キャンバスの円が描かれた後、イベントバインディングが可能です
    1. function bindingEvent() {
    2. can.addEventListener("touchstart", function (e) {
    3. var po = getPosition(e);
    4. console.log(po);
    5. for (var i = 0 ; i
    6. if (Math.abs(po.x - arr[i].x) && Math.abs(po.y - arr[i].y) < r) { // 圈圈内部で開始点の有無を判断します
    7. touchFlag = true;
    8. drawPoint(arr[i].x,arr[i].y);
    9. lastPoint.push( arr[i]);
    10. restPoint.splice(i,1);
    11. break;
    12. }
    13. }
    14. }, false);
    15. can.addEventListener("touchmove", function (e) {
    16. if (touchFlag) {
    17. update(getPosition(e));
    18. }
    19. }, false);
    20. can.addEventListener("touchend", function (e) {
    21. if (touchFlag) {
    22. touchFlag = false;
    23. storePass(lastPoint);
    24. setTimeout(function(){
    25. init();
    26. }, 300);
    27. }
    28. }, false);
    29. }

    复制代



    次へ了最关键の步默制解锁路径逻辑,过touchmoveイベントの不断接触発行,调用canvasのmoveToメソッドとlineToメソッドを使って描画します,同時に私が到達したかどうかを判断します画の圈圈里面、その中に lastPoint は正しい圈路を保持し、restPoint はすべての圈圈削除正圈路の後に残ります。時刻调用

    ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);

      for (var i = 0 ;私は<配列の長さ ; i++) { // 每帧先握面板画出来
    1. drawCle(arr[i].x, arr[i].y);
    2. }
    3. drawPoint(lastPoint);// 每帧花轨迹
    4. ドローライン(PO、lastPoint); // ].x) < r && Math.abs(po.y -restPoint[i].y) < r) {
    5. drawPoint(restPoint[i].x,restPoint[i].y);
    6. lastPoint .push(restPoint[i]);
    7. restPoint.splice(i, 1);
    8. Break;
    9. }
    10. }
    11. 复制幣


    12. 最後のステップは仕上げ作業で、パス内の lastPoint によって保存された配列をパスワードに変換してローカルストレージに保存します。これはロック解除の検証ロジックの処理に使用されます。

      1. function storePass(psw) {//タッチエンド終了後のパスワードとステータスの処理
      2. if (pswObj.step == 1) {
      3. if (checkPass(pswObj.fpassword , psw)) {
      4. pswObj.step = 2; pswObj.spassword = pswObj.step = ';
      5. drawStatusPoint('#2CFF26'); .setItem('passwordx', JSON.stringify(pswObj.spassword));
      6. window.localStorage.set (('chooseType',chooseType)); document.getElementById('title').innerHTML = '2 回矛盾しています、再入力';
      7. 、 psw)) {
      8. document.getElementById('title') drawStatus。 Point('red');
      9. document.getElementById('title').innerHTML = 'ロック解除に失敗しました'; j.fpassword = psw;
      10. document.getElementById('title') .innerHTML = 'Enter again'; ML5 のロック解除はコンポーネントとして記述され、https://github に配置されています。チーム: http://www. loyteam.com/2015/07 ... u-shou-shi-jie-suo/
      11. HTML5 コンテンツの詳細については、
      12. をクリックしてください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート