JS はシンプルな todoList (メモ帳) 効果を実装します

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド フレームワークを使用して実装されています。

メモ帳にToDo 項目追加、完了、削除する基本機能を実装しました。

以下はプログラムの完全なコードです。

1. 効果表示を実現する

2. HTMLコード

<ヘッド>
  <メタ文字セット="UTF-8">
  <title>ToDoリスト</title>
//CSS ファイルをインポート <link rel="stylesheet" href="todoList.css" >
</head>
<本文>
<div class="myhead">
   <h2>私のToDoリスト</h2>
  <テーブル>
    <tr>
      <td><input type="text" placeholder="ToDo 項目を入力してください..." id="things"></td>
      <td> <span id="add" onclick="addElement()">追加</span></td>
    </tr>
  </テーブル>
</div>
 
//ToDo リスト セクション、コンテンツは動的に生成されます<ul></ul>
 
<div class="test2"></div>
</本文>
<!-- JavaScript 要素を最後に置いてください。そうしないと、JavaScript の実行時に DOM ツリーがまだ構築されていないため、予期しないエラーが発生します -->
<script src="todoList.js" type="text/javascript"></script>
</html>

3. CSSコード

@フォントフェイス {
  font-family: 'iconfont'; /* プロジェクト ID 2680005 */
  ソース: url('//at.alicdn.com/t/font_2680005_2v81j5og00f.woff2?t=1626424842361') フォーマット('woff2'),
  url('//at.alicdn.com/t/font_2680005_2v81j5og00f.woff?t=1626424842361') フォーマット('woff'),
  url('//at.alicdn.com/t/font_2680005_2v81j5og00f.ttf?t=1626424842361') フォーマット('truetype');
}
 
体 {
  マージン: 0;
  パディング: 0;
}
*{
  ボックスのサイズ: 境界線ボックス;
}
.私の頭{
   背景色: ライトピンク;
   テキスト配置: 中央;
   パディング: 5px 0px 10px 0px;
   色: アリスブルー;
 }
  テーブル{
  マージン: 0 自動;
}
 #もの{
   幅: 180ピクセル;
   高さ: 30px;
   境界線の半径: 3px;
   アウトライン: なし;
   境界線: 実線 1px 白;
 }
 #追加{
   表示: インラインブロック;
   幅: 80ピクセル;
   高さ: 30px;
   背景色: ゲインズボロ;
   色: グレー;
   境界線の半径: 3px;
   行の高さ: 30px;
 }
  #追加:ホバー{
    カーソル: ポインタ;
    背景色: ダークグレー;
    色: グレー;
  }
ul{
  マージン: 0px;
  パディング: 0px;
}
  ul li{
    リストスタイル: なし;
    /*テキスト配置: 中央;*/
    位置: 相対的;
    パディング左:40px;
    高さ: 40px;
    行の高さ: 40px;
  }
  ul li:n番目の子(奇数) {
  背景色: #f9f9f9;
}
  ul li:hover{
  カーソル: ポインタ;
  背景色: #dddddd;
}
 
  ul li.check{
  背景色: #888888;
  テキスト装飾: 取り消し線;
  色: #f9f9f9;
}
  ul li.check::before{
 
    コンテンツ: '';
    位置: 絶対;
    境界線の色: #fff;
    境界線のスタイル: solid;
    境界線の幅: 0 2px 2px 0;
    上: 10px;
    左: 16px;
 
    変換: 回転(45度);
    高さ: 15px;
    幅: 7px;
}
。近い{
  位置: 絶対;
  右: 0px;
  上: 0px;
  パディング: 0px 20px;
  フォントサイズ: 16px;
}
.close:hover{
  背景色: #f44336;
  色: 白;
}

4. JavaScriptコード

//1. 各スパンの後に閉じるノードを追加します var myNodelist = document.getElementsByTagName ("li")
 
(var i=0;i<myNodelist.length;i++) の場合
{
  var span = document.createElement("span");
 
  var txt = document.createTextNode("\u00D7");
 
  span.className="閉じる";
  span.appendChild(txt);
  myNodelist[i].appendChild(span);
 
}
 
//2. 削除イベントを処理する var close = document.getElementsByClassName("close")
(var i=0;i<close.length;i++) の場合
{
  close[i].onclick=関数() {
    //parentElement は現在のノードの親要素ノードを返すことを意味します var div = this.parentElement
    div.style.display="なし"
  }
}
 
//3. タスク完了イベントの処理 var list = document.querySelector ("ul")
console.log(リスト)
list.addEventListener('click',関数(ev) {
//event.target 属性はイベント委譲を実装するために使用できます。たとえば、イベントを ul にバインドしますが、li がクリックされたときにトリガーできます //tagName は要素のタグ名です if (ev.target.tagName === 'LI')
{
  // トグルメソッドは選択された要素のhide()とshow()を切り替えます //classListは要素のクラスに対して引き続き動作します ev.target.classList.toggle('check')
}
}、間違い);
 
//4. プロセスクリックの追加ボタンをクリックし、ToDo 項目をリストに追加する function addElement(){
  var things = document.getElementById('things').value
 
 // アラート(localStorage.setItem("mutodolist",JSON.stringify(things)))
 
  var li = document.createElement('li')
 
  var t = document.createTextNode(もの)
 
  if (もの == '')
  {
    alert("保留中のイベントを入力してください")
  }
  それ以外
  {
    リストに追加子(li)
    li.appendChild(t)
  }
 
  var span = document.createElement('span')
  var txt = document.createTextNode('\u00D7')
 
  span.className='閉じる'
  span.appendChild(txt)
  li.appendChild(スパン)
 
  (var i=0;i<close.length;i++) の場合
  {
    close[i].onclick=関数() {
      var div = this.parentElement
      div.style.display="なし"
    }
  }
}

プログラムを実装しているときに、いくつかのコードの意味は理解できたのですが、自分で書き始めると、どうやって完成させるのかが思いつきませんでした。

結局のところ、私は十分にコーディングを練習しておらず、学んだことから推論を導き出して自分の考えに統合することができていないのだと思います。

そのため、この記事を読んでメモ帳効果を作りたいと思ったら、実際に自分で入力してみることをお勧めします。結局、自分でコードを入力してみることでのみ、どこに欠陥やエラーがあるかを知ることができます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • フロントエンド HTML+CSS+JS を使用してシンプルな TODOLIST 関数を開発する (メモ帳)
  • todolist 機能を実装するためのネイティブ JavaScript
  • Vue.js todolist 実装コード
  • JavaScript の例 ODO リスト分析

<<:  MySQL のインデックス障害の一般的なシナリオと回避方法

>>:  GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図

推薦する

JS を使って 1 分で github+Jekyll ブログに訪問カウント機能を追加する実装

目次1分でgithub+Jekyllブログにトラフィック機能を追加する1. ジェクルとは何か1. J...

VMware 15 を使用して仮想マシンをインストールし、CentOS 8 を使用する詳細な手順

序文:現在、Linux と .Net Core を学習しており、クロスプラットフォームの知識を学んで...

MySQL の count()、group by、order by の詳細な説明

最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...

CSSで特殊なグラフィックを描く方法

1. 三角形境界線の設定 コード: 幅: 300ピクセル; 高さ: 300px; 背景: 赤; 境界...

入力ボックスのカーソルサイズの表示が一貫していない問題の解決方法

入力ボックス内のカーソルのサイズが一定ではありませんIE7とChromeの違いは非常に明白ですまず、...

ユニアプリとミニプログラム(画像とテキスト)を下請けする方法を教えます

目次1. ミニプログラム下請け2. Uniapp 下請けアプレット下請けの手順: 1. manife...

JavaScript の parseInt() の魔法についての簡単な説明

原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...

Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...

Vue3 Reactivityの実装方法を教えます

目次序文始めるちょっとした考えコードの実装真似する実装トラックトリガーの実装観察の実装計算の実装序文...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...

HTML テーブルタグチュートリアル (3): 幅と高さの属性 WIDTH、HEIGHT

デフォルトでは、テーブルの幅と高さはコンテンツに応じて自動的に調整されます。テーブルの幅と高さを手動...

MySQL ログインおよび終了コマンドの形式

mysql ログインのコマンド形式は次のとおりです。 mysql -h [hostip] -u [ユ...

詳細なハードウェア情報を取得するための Linux のいくつかのコマンドの詳細な説明

Linux システム、特にサーバー システムでは、デバイスのハードウェア情報を表示する必要がよくあり...

MySQL 入門 - 概念

1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...

「@INC で ExtUtils/MakeMaker.pm が見つかりません」というエラーを解決する

mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...