ホームページ ウェブフロントエンド htmlチュートリアル 我が神よ!かつて私は 21 個のネストされた callbacks_html/css_WEB-ITnose を書きました

我が神よ!かつて私は 21 個のネストされた callbacks_html/css_WEB-ITnose を書きました

Jun 21, 2016 am 08:49 AM

約 21 か月前、まだコールバックが何なのかさえ分からないうちに、私は最初の Web ページを作成しました。これら 21 個のネストされたコールバックに敬意を表して、このページを見直す時期が来たと思いました。

当時の私には、文系の授業や家族旅行の際にノートに落書きをするという、ちょっと古いかもしれない習慣がありました。夏の旅行中に、とてもクールだと思った三角形のパターンのセットを作成しました。それで、電子版にすることはその夏に取り組む価値のあることだと思いました。また、このセットで Tumblr の画像をとてもクールに見せたいとも思いました。

私はコンピューターを専攻している友人を探し始め、何か指導してもらえないかと尋ねました。私が受け取った返信の多くは「Google で調べてください」と要約できますが、そのサブテキストは次のとおりです。「Google で調べても、何をすればよいかわからないなら、あなたは愚か者です。

「ページに三角形を作成すると思います...しかし、Google は良い答えをくれないようです。」

「いいえ、キーワードとして「CSS 三角形」を使用する必要があります。わかりますか? "

「申し訳ありませんが、CSS は三角形と何の関係があるのですか?」

通常、会話はそこで終わります。 HTML を装飾します。 "

(これらのやり取りから、私は次の結論に達しました。プログラマは、誰が最も多くのことを「シンプル」と言えるか常に競い合っています)

この会話の後、私はこう感じました。私が本当に最高のクズだったように。しかしその後、div (これはどういう意味ですか?) と数行の CSS を使用して三角形を作成する方法を発見しました。また、クールな色の変化効果を備えた Web サイトもいくつかあり、それをコピーして三角形のパターンに作成することができました。

私 (プログラミング初心者) がどのようにしてこれを組み立てたのか、興味があるはずです。

さて、これが私の HTML の概要です:

<div id="row1">  <div class="btri"></div>  <div class="tri"></div>  <div class="tri"></div>  <div class="tri"></div>  <div class="emp"></div>  <div class="tri"></div>  <div class="tri"></div></div><div id="row2">  <div class="tri"></div>  <div class="tri"></div>  <div class="tri"></div>  <div class="tri"></div>  <div class="tri"></div>   ...
ログイン後にコピー
悲しいことに、以下に同様の内容が 165 行あり、付随する JavaScript コードも重複していることを報告しなければなりません。は平行四辺形です。

後で、jQuery と呼ばれるものがあり、その「API」で「animate」と呼ばれるものを使用して、三角形のさまざまなプロパティを徐々に変更できることを知りました。 $('#something').animate({ ‘opacity’: ‘0’ }) を 1 回呼び出すと、三角形が消えることがわかりました。私の頭の中では、20 行の三角形を 1 つずつ消したい場合、このコードを 20 回記述する必要がありますが、これは論理的です。

内容をコピーして JavaScript ファイルの開始位置に貼り付けることで、jQuery を「インポート」しました。他のページでは別のファイルで記述されているのを見ましたが、意味があるかどうかに関係なく、すべての JavaScript を 1 つのファイルに入れることにしました。

冗談を言うなら、私は最も最適なプログラミング方法、つまり最も難しいスタイルを選択したと言えます。

$(".disappear").click(function(){  $("#row20").animate({ "opacity": "0" },    100,    function(){$("#row19").animate({ "opacity": "0" },      100,      function(){$("#row18").animate({ "opacity": "0" },        100,        function(){$("#row17").animate({ "opacity": "0" },          100,          function(){$("#row16").animate({ "opacity": "0" },            100,            function(){$("#row15").animate({ "opacity": "0" },              100,              function(){$("#row14").animate({ "opacity": "0" },                100,                function(){$("#row13").animate({ "opacity": "0" },                  100,                  function(){$("#row12").animate({ "opacity": "0" },                    100,                    function(){$("#row11").animate({ "opacity": "0" },                      100,                      function(){$("#row10").animate({ "opacity": "0" },                        100,                        function(){$("#row9").animate({ "opacity": "0" },                          100,                          function(){$("#row8").animate({ "opacity": "0" },                            100,                            function(){$("#row7").animate({ "opacity": "0" },                              100,                              function(){$("#row6").animate({ "opacity": "0" },                                100,                                function(){$("#row5").animate({ "opacity": "0" },                                  100,                                  function(){$("#row4").animate({ "opacity": "0" },                                    100,                                    function(){$("#row3").animate({ "opacity": "0" },                                      100,                                      function(){$("#row2").animate({ "opacity": "0" },                                        100,                                        function(){$("#row1").animate({ "opacity": "0" },                                          100)})})})})})})})})})})})})})})})})}
ログイン後にコピー
完全なソース コードと最終製品はここでご覧いただけます。

(各コールバック メソッドのインデントを揃えるという手間もかかりましたが、これは Windows メモ帳では簡単な作業ではありません)

上記の JavaScript の最後は壮観なセットであることに注意してください) })})})})})})})})})})})})})})})})})})}) 三角形が意図したとおりに消えたり、再び現れたりするのを見るのはとてもうれしかったです。コード自体は、ASCII の壮大な滝、または高度なスペイン語の教科書に登場するインカの灌漑システムのようなものです。コードは有効であり、Google ではコードが完全に間違っているとか、私のコードを見たプログラマーが私と私の子孫をインターネットから永久に追放するなどと言っている人は見かけません。

本物のソフトウェア エンジニアが私のトライアングル コードを見に来るまでに、私は SICP (コンピューター プログラムの構築と解釈) の資料を十分に見ていたので、私のコードが恐ろしく恐ろしいものであることがわかりました。 「でも、初心者ってこういう失敗するんですよね?」と恥ずかしそうに聞いてみた。

「いいえ、プログラマーはそんなことはしません。彼は皮肉のつもりで言ったわけではありません。」私はこの話題を分子細胞生物学に持ち込みたかったのです。しかし彼はさらに、「プログラマーはそんなコードを書くはずがない。彼らには忍耐力がないからだ。

彼の 2 番目の段落が真実であるかどうかに関係なく、私はこの全体に対して否定的な意見を持っている」気分が良くなりました。

とにかく、私は後で恥をかいて自分の三角を埋めました。月日が経つにつれて、それらはやがて無知の旅の始まりとなります。 「ねえ、CoffeeScript コードの空白問題のデバッグにここ 2 時間を費やしてきましたね? 21 個のネストされたコールバックと 200 行の同じ HTML を書くのに 1 日かかったのを覚えています。これはよくある話です。」 . 自虐的で面白い効果。

Triangle プロジェクト以来、私が書いたコードの各行は、「グーグル検索」、コードのデバッグ、およびさまざまなプログラミングのトピックを上達させただけであることに気づきました。一見愚かに見えるあらゆるプロジェクトを通して。

先週、私は三角形を簡単に書き直すことに時間を費やしました。ここで見ることができますが、当時は私が理解できなかった応答性と動的に生成されるエフェクトを誇っています (もちろん、古いバージョンの明白な利点を犠牲にすることしかできませんでした)。 div を使用して三角形を生成し、jQuery を使用してアニメーション効果を作成するという、元のデザインの本質を維持しました。

今、私はバークレーの木々に囲まれた安全な壁を出て、現実の世界に入ろうとしています(そしてできれば、暗号を使った過去の犯罪歴も解消したいと思っています)。私の三角形の角の 1 ~ 3 つを遺産として残します。

プログラミングは難しいです。 「Google it」で隣の人よりも優れていないからといって、決してイライラしないでください。ハッカソンを名乗る偽の専門家にだまされて、次の猫の Weibo や公衆トイレのレビュー サイトを作成する機会を放棄しないようにしてください。最も愚かなアイデア (ポリゴンが消えたり再び現れたりするアニメーションを試みるなど) であっても、プログラマーとして向上し続けるのに役立ちます。プログラミングを学ぶということは、主に学び方を学ぶことであり、学ぶための最良の方法は実際にやってみることです。

結局のところ、有能なプログラマーになることは、ハッカソンで何回優勝するか、どれだけ新しいアイデアを思いつくかとは何の関係もありません。それは、実行力、細部への注意力、献身的な努力に関係しています。創造と躍進への情熱。

自分のコードを恥ずかしいと思うなら、私のトライアングル プロジェクトの 21 個のネストされたコールバックを笑っても構いません。

記事の出典: Bole Online

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles