メモ帳プログラムは、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL のインデックス障害の一般的なシナリオと回避方法
>>: GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図
letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...
MySQL 5.7 以降では、多くのセキュリティ更新が追加されました。旧バージョンのユーザーは慣れて...
background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...
mysqlbinlogのバージョンを表示mysqlbinlog -V [--version] bin...
1. アクセス頻度、同時接続、ダウンロード速度を制限するために使用されるモジュールと命令の概要ngx...
最近、Dreamweaver を使用して製品プレゼンテーションを作成し、画像にハイパーリンクを追加し...
Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...
Linux が NFS サーバーを構築異なるオペレーティング システム間でデータを共有するために、通...
目次序文1. アプリケーションコンポーネント2. アプリケーションの種類3. アプリケーションサービ...
目次ノードイベントループイベントループ図メインスレッドイベントループタイマーキューの仕組み投票キュー...
ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...
目次最近Reactを勉強していて、今は仕事でVueを使っています。学習の過程で、両者を比較して理解を...
Linux に PHP7 をインストールするにはどうすればいいですか? 1. 依存パッケージをインス...
まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...
仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...