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 パフォーマンスの改善プロセス図

推薦する

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

MySQL: データの整合性

データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

vue+element カスタムクエリコンポーネント

この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...

nginxコンテナ設定ファイルの独立した実装

コンテナを作成する [root@server1 ~]# docker run -it --name ...

JavaScript イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

docker version es、milvus、minio 起動コマンドの詳細な説明

1. es起動コマンド: docker run -itd -e TAKE_FILE_OWNERSHI...

Vue 計算プロパティ実装トランスクリプト

この記事では、Vueの計算プロパティ実装レポートカードを参考に共有します。具体的な内容は次のとおりで...

CentOS8 でローカル yum ソースを構成するための詳細なチュートリアル

centos8 ディストリビューションは、BaseOS および AppStream リポジトリを通じ...

MySQLクエリが遅い理由

目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...