<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>HTML on 阿珏酱のBlog</title>
    <link>https://zh.moejue.cn/ja/tags/html/</link>
    <description>Recent content from 阿珏酱のBlog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    
    <managingEditor>xxx@example.com (MoeJue)</managingEditor>
    <webMaster>xxx@example.com (MoeJue)</webMaster>
    
    <copyright>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</copyright>
    
    <lastBuildDate>Fri, 15 Aug 2025 06:15:23 +0000</lastBuildDate>
    
    
    <atom:link href="https://zh.moejue.cn/ja/tags/html/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
    

    <item>
      <title>ネット回線速度の速遅による違い</title>
      <link>https://zh.moejue.cn/ja/posts/119/</link>
      <pubDate>Sat, 07 Nov 2020 14:09:07 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/119/</guid>
      <description>
        <![CDATA[<h1>ネット回線速度の速遅による違い</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>ネット速度の速遅による違いについて</p>
<p>ネットワークの普及に伴い、ユーザーは応答速度の速遅をますます重視するようになっています。ウェブサイトが速ければ速いほど、ユーザーの定着率とコンバージョン率も高まります。
簡単に言えば、スピードアップが重要です！ウェブサイトの速度に影響を与える要因はたくさんあります。例えば&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;.</p>
<p>真面目な話は私のスタイルではありません。さて、私のパフォーマンスをご覧ください。
<strong>アイデアの起源</strong>：
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/11/07/0072Vf1ply1gkgf5kosbfj30bl0l4mzm.jpg" alt="">
最初は純粋なCSSで実装することを考えました。背景画像をbase64エンコードしてbackground-imageに直接配置すれば、背景画像がウェブページと一緒に読み込まれる効果が得られるだろうと。</p>
<p>ステップ1：
まず、事前に準備した素材画像を処理し、水着と水着のスカートを脱がせます <img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/11/07/0072Vf1ply1gkgfdqj354j302s033dfn.jpg" alt="">
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/11/07/0072Vf1ply1gkgf79od99j31fv0m47wh.jpg" alt="">
ステップ2：
新しいHTMLファイルを作成します
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2020/11/07/0072Vf1ply1gkgf9om2ylj30b306q3zf.jpg" alt="">
ステップ3：</p>
<div class="裸体">
        <div class="泳衣" id="泳衣"></div>
        <div class="泳裙" id="泳裙"></div>
</div>
<p>完了。。
すると問題が見つかりました。私の背景画像ファイルサイズが12MBに達していたため、エンコード後の文字列が大きすぎ、ウェブページの読み込みが重く遅くなり、まったくユーザー体験がありませんでした。
さらに、この方法で読み込まれた背景画像は突然表示され、唐突すぎて効果が良くありませんでした。</p>
<p>その後、変更しました：
CSS+JavaScriptで実装することにしました。background-imageで背景画像を直接読み込むことで、徐々に表示される効果が得られ、背景画像の読み込みが完了した後、JSで動的に画像を挿入します。</p>
<p>window.onload = function(){
var img=new Image();
img.src=&lsquo;裸体.jpg&rsquo;;
if(img.width==0){
alert(&lsquo;图片加载失败&rsquo;)
}else{
document.getElementById(&ldquo;泳衣&rdquo;).style.backgroundImage=&ldquo;url(泳衣.png)&rdquo;;
document.getElementById(&ldquo;泳裙&rdquo;).style.backgroundImage=&ldquo;url(泳裙.png)&rdquo;;
}
}</p>
<p>思わず一言漏らしました。「なんてひどいネットワークだ、遅すぎて人物画像の服すら読み込めないなんて！」</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/dynKiyrFtak?si=6UFLhBK7VMgbLWPE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when_cross-origin" allowfullscreen=""></iframe>
        
        <hr><p>この記事は2020-11-07に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-08-15です</p>]]>
      </description>
      
        <category>HTML</category>
      
    </item>
    
    

    <item>
      <title>macOS風のWebアプリを構築する</title>
      <link>https://zh.moejue.cn/ja/posts/260/</link>
      <pubDate>Sun, 11 May 2025 11:46:03 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/260/</guid>
      <description>
        <![CDATA[<h1>macOS風のWebアプリを構築する</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <h3 id="プロジェクト概要">
<a class="header-anchor" href="#%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%a6%82%e8%a6%81"></a>
プロジェクト概要
</h3><p>今日のWeb開発分野において、ユーザーエクスペリエンスとインターフェースデザインはますます重要になっています。</p>
<p>Mac Web Vue Templateは、macOSのデザインにインスパイアされた、モダンでエレガントなVue.jsのWebテンプレートです。Vue.jsをベースにした現代的なWebアプリケーションテンプレートであり、そのデザインはmacOSの優雅なインターフェースから着想を得ています。このプロジェクトは、美しいUIデザインだけでなく、完全なプロジェクト構造とベストプラクティスも提供します。</p>
<h4 id="オンラインデモ">
<a class="header-anchor" href="#%e3%82%aa%e3%83%b3%e3%83%a9%e3%82%a4%e3%83%b3%e3%83%87%e3%83%a2"></a>
オンラインデモ
</h4><p><a href="https://mac.moejue.cn/">WebAi</a> にアクセスすることで、このテンプレートの実際の効果を体験できます。招待コード(MoeJue)</p>
<h3 id="主な特徴">
<a class="header-anchor" href="#%e4%b8%bb%e3%81%aa%e7%89%b9%e5%be%b4"></a>
主な特徴
</h3><ol>
<li>
<p><strong>macOS風のUIデザイン</strong></p>
<ul>
<li>macOSのデザイン言語を採用</li>
<li>洗練されたすりガラス効果</li>
<li>エレガントなアニメーショントランジション</li>
</ul>
</li>
<li>
<p><strong>モダンな技術スタック</strong></p>
<ul>
<li>Vue.jsをコアフレームワークとして使用</li>
<li>Viteをビルドツールとして使用</li>
<li>Piniaによる状態管理</li>
<li>Vue Routerによるルーティング処理</li>
<li>SCSSプリプロセッサ</li>
<li>ES6+のモダンな機能</li>
</ul>
</li>
<li>
<p><strong>レスポンシブデザイン</strong></p>
<ul>
<li>あらゆる画面サイズに完璧に対応</li>
<li>スムーズなモバイル体験</li>
</ul>
</li>
</ol>
<h3 id="プロジェクト構造の解説">
<a class="header-anchor" href="#%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%a7%8b%e9%80%a0%e3%81%ae%e8%a7%a3%e8%aa%ac"></a>
プロジェクト構造の解説
</h3><p>プロジェクトは、明確でモジュール化されたディレクトリ構造を採用しています：</p>
<pre tabindex="0"><code>src/
├── assets/          # 静的リソース
├── components/      # Vueコンポーネント
│   ├── common/     # 共通コンポーネント
│   ├── system/     # システムコンポーネント
│   └── apps/       # アプリケーションコンポーネント
├── views/          # ページビュー
├── router/         # ルーティング設定
├── stores/         # 状態管理
└── utils/          # ユーティリティ関数
</code></pre><p>この構造設計により、プロジェクトは良好な保守性と拡張性を備えています。</p>
        
        <hr><p>この記事は2025-05-11に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2025-05-11です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title># 俺の二次元アルバムが帰ってきた</title>
      <link>https://zh.moejue.cn/ja/posts/227/</link>
      <pubDate>Fri, 08 Nov 2024 09:52:39 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/227/</guid>
      <description>
        <![CDATA[<h1># 俺の二次元アルバムが帰ってきた</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>最初の<a href="https://moejue.cn/archives/10">ギャラリー</a>から<a href="https://moejue.cn/archives/61">画像アップローダー</a>、そして現在のアルバムに至るまで、私の画像に対するこだわりは、もはや世紀をまたぐほどのものです。ギャラリーの画像は七牛雲（Qiniu Cloud）に保存していましたが、後にトラフィックを不正に消費されたため閉鎖しました。画像アップローダーは現在、ブログ用の画像アップロードサービスとして利用しています。アルバムは、スマートフォンのアルバムのような概念で、画像も動画も保存できます。徐々に完成度が高まってきています。</p>
<p>ここ数日で、普段保存している動画や画像などをサーバーにアップロードし、UIとAPIを作成して、ついでにオープンソースとして公開しました。（私は熱心なオープンソース支持者でありたいと思っています）</p>
<h4 id="私の二次元アルバム-フロントエンドui">
<a class="header-anchor" href="#%e7%a7%81%e3%81%ae%e4%ba%8c%e6%ac%a1%e5%85%83%e3%82%a2%e3%83%ab%e3%83%90%e3%83%a0-%e3%83%95%e3%83%ad%e3%83%b3%e3%83%88%e3%82%a8%e3%83%b3%e3%83%89ui"></a>
私の二次元アルバム フロントエンドUI
</h4><ol>
<li>ここは阿珏ちゃん（A-Jue-chan）のプライベートアルバムで、普段収集した画像や、各プラットフォームで「いいね」や「お気に入り」登録した動画を保存しています。</li>
<li>Bilibili、YouTube、TikTok、X、Facebook、pixivなどのプラットフォームの動画や画像を含みますが、これらに限定されません。関連するデータ情報の著作権はすべて原作者に帰属します。</li>
<li>データは不定期に手動で更新されます。特定の画像や動画が必要な場合は、直接阿珏ちゃんにご連絡ください。</li>
</ol>
<h3 id="プレビュー">
<a class="header-anchor" href="#%e3%83%97%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc"></a>
プレビュー
</h3><p><a href="https://photo.moejue.cn">https://photo.moejue.cn</a></p>
<p><img src="https://github.com/iAJue/PhotoGallery/raw/main/public/images/1.png" alt="image"> <img src="https://github.com/iAJue/PhotoGallery/raw/main/public/images/2.png" alt="image"> <img src="https://github.com/iAJue/PhotoGallery/raw/main/public/images/3.png" alt="image"></p>
<h3 id="特徴">
<a class="header-anchor" href="#%e7%89%b9%e5%be%b4"></a>
特徴
</h3><ol>
<li>画像と動画の表示をサポート</li>
<li>アルバムの表示をサポート</li>
<li>アルバムのパスワード保護をサポート</li>
<li>18+保護をサポート</li>
<li>検索機能をサポート</li>
</ol>
<h3 id="todo">
<a class="header-anchor" href="#todo"></a>
Todo
</h3><ol>
<li>エフェクト表示の最適化</li>
<li>UIの滑らかさの最適化</li>
</ol>
<h3 id="インストール手順">
<a class="header-anchor" href="#%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e6%89%8b%e9%a0%86"></a>
インストール手順
</h3><ol>
<li>
<p>リポジトリをローカルにクローンします：</p>
<pre tabindex="0"><code>git clone https://github.com/iAJue/PhotoGallery.git
</code></pre></li>
<li>
<p>プロジェクトディレクトリに移動します：</p>
<pre tabindex="0"><code>cd PhotoGallery
</code></pre></li>
<li>
<p>依存関係をインストールします：</p>
<pre tabindex="0"><code>npm install
</code></pre></li>
<li>
<p>プロジェクトをビルドします</p>
<pre tabindex="0"><code>npm run build
</code></pre></li>
</ol>
<h3 id="バックエンドapi">
<a class="header-anchor" href="#%e3%83%90%e3%83%83%e3%82%af%e3%82%a8%e3%83%b3%e3%83%89api"></a>
バックエンドAPI
</h3><p>参考用 <a href="https://github.com/iAJue/wasteCode/tree/main/photo">https://github.com/iAJue/wasteCode/tree/main/photo</a></p>
<h3 id="返却データ形式">
<a class="header-anchor" href="#%e8%bf%94%e5%8d%b4%e3%83%87%e3%83%bc%e3%82%bf%e5%bd%a2%e5%bc%8f"></a>
返却データ形式
</h3><ol>
<li>
<p>写真API</p>
<pre tabindex="0"><code>[
{
    &#34;date&#34;: &#34;\u6628\u5929&#34;,
    &#34;items&#34;: [
        {
            &#34;src&#34;: &#34;https:\/\/moejuevideo.pages.dev\/file\/1730957555106_ocgRCdDEA07fAILEKEFOA8ADAyETABBMffIBE6~tplv-dy-aweme-images_q75.webp&#34;,
            &#34;alt&#34;: &#34;ocgRCdDEA07fAILEKEFOA8ADAyETABBMffIBE6~tplv-dy-aweme-images_q75.webp&#34;,
            &#34;isVideo&#34;: false,
            &#34;duration&#34;: null
        }
    ]
}
]
</code></pre></li>
<li>
<p>アルバムAPI</p>
        
        <hr><p>この記事は2024-11-08に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2024-12-04です</p>]]>
      </description>
      
        <category>二次元</category><category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>サボっていた主が、新版の三合一を持って帰ってきました。</title>
      <link>https://zh.moejue.cn/ja/posts/15/</link>
      <pubDate>Sun, 04 Aug 2019 01:42:18 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/15/</guid>
      <description>
        <![CDATA[<h1>サボっていた主が、新版の三合一を持って帰ってきました。</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>5月20日の告白以来、ハト主は行方不明の状態が続いていました&hellip;&hellip;.
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/08/04/0072Vf1pgy1g5nlxy8to3j306o05b75f.jpg" alt="">
何ヶ月ぶりか分かりませんが、三合一がまた更新されました。2ヶ月前にグループで立てた目標を、今日達成しました。間の2ヶ月間何をしていたかは聞かないでください-.-（大規模なハトの集会に参加するのに忙しかった）</p>
<h2 id="正文">
<a class="header-anchor" href="#%e6%ad%a3%e6%96%87"></a>
正文
</h2><p>ネットワーク認識が頻繁にダウンし、非常に不安定であるというフィードバックを多くの仲間から受けていたため、今回特別にローカル認識を更新しました。
1G以上のメモリを搭載したマシンへのインストールを推奨します。推奨構成は2コア2G、最適構成は16コア32Gです [#手動顔文字]</p>
<h4 id="v20">
<a class="header-anchor" href="#v20"></a>
v2.0
</h4><ul>
<li>ローカルQRコード認識と生成を追加</li>
<li>ネットワーク認識インターフェースを削除</li>
<li>既知のバグを修正</li>
<li>その他のいくつかの詳細な最適化</li>
</ul>
<p>詳細な説明とインストールチュートリアルは、<a href="https://www.52ecy.cn/post-88.html">こちら</a>をクリックして以前のバージョンをご覧ください。
新しいバージョンのウェブサイトはすべて古いバージョンのデータを保持しており、以前のユーザーの使用には影響せず、スポンサー版のデータとも同期されています。</p>
<h4 id="スポンサー版">
<a class="header-anchor" href="#%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b5%e3%83%bc%e7%89%88"></a>
スポンサー版
</h4><p>旧バージョンの海賊版が横行していたため、新版の三合一にはスポンサー版が追加されました。
デモサイト：<a href="https://qr.moeins.cn/">https://qr.moeins.cn</a></p>
<p>スポンサー版の主な特徴：</p>
<ol>
<li>QRコードの認識と生成を最適化し、認識精度を大幅に向上させ、認識速度を高速化し、CPUとメモリを占有せず、より安定しています。</li>
<li>21種類の三合一生成テンプレートを新規追加し、無限拡張をサポートします。追加チュートリアルは文末にあります。</li>
<li>外部APIインターフェースを新規追加しました。このプログラムに限定されず、どのプログラムからでも呼び出し可能です。</li>
</ol>
<p>入手方法：
<a href="https://pay.52ecy.cn/?cid=23">こちら</a>をクリックして18.88元以上をプロジェクトに寄付すると、決済コード三合一のスポンサー限定版を入手できます。ぜひお試しください！</p>
<p>スポンサー版に関するいくつかの小さな説明（これまでは特に説明していませんでした）
これまでのところ、私のすべてのスポンサー版プロジェクトはドメインに縛られず、暗号化されておらず、自由に拡張でき、二次開発をサポートしており、スポンサー金額も低く設定されています。そのため、スポンサーしてくださった方々は、入手したソースコードを安易に共有しないようお願いいたします。これは作者への敬意であり、ご自身の権利の保護でもあります。売買関係ではないため、重大なバグがない限り、作者は不定期に更新するか、無期限に更新を延期する場合があります。小さな問題が発生した場合、作者が空いている時間であれば指導や修正を手伝う用意がありますが、大規模な新機能の追加といった場合には、協力を拒否するか、別途料金をいただく権利があります。</p>
<h4 id="スポンサー版テンプレート拡張チュートリアル">
<a class="header-anchor" href="#%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b5%e3%83%bc%e7%89%88%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e6%8b%a1%e5%bc%b5%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab"></a>
スポンサー版テンプレート拡張チュートリアル
</h4><p>テンプレートの推奨サイズは：900*1200</p>
<ol>
<li>
<p>テンプレート画像を<code>/public/static/images/template/</code>テンプレートディレクトリに配置します。注意点として、中国語名を使用せず、jpg拡張子のみをサポートします。</p>
</li>
<li>
<p>ルートディレクトリの<code>config.php</code>にある<code>qr_template</code>項目に関連データを以下のような形式で設定します。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#e6db74">&#39;001&#39;</span> <span style="color:#f92672">=&gt;</span> [
</span></span><span style="display:flex;"><span>	<span style="color:#e6db74">&#39;name&#39;</span> <span style="color:#f92672">=&gt;</span> <span style="color:#e6db74">&#39;默认模板&#39;</span>,
</span></span><span style="display:flex;"><span>	<span style="color:#e6db74">&#39;data&#39;</span> <span style="color:#f92672">=&gt;</span> [
</span></span><span style="display:flex;"><span>		<span style="color:#ae81ff">150</span>,<span style="color:#ae81ff">200</span>
</span></span><span style="display:flex;"><span>	],
</span></span><span style="display:flex;"><span>	<span style="color:#e6db74">&#39;title&#39;</span> <span style="color:#f92672">=&gt;</span> <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>	<span style="color:#e6db74">&#39;size&#39;</span> <span style="color:#f92672">=&gt;</span> <span style="color:#ae81ff">20</span>
</span></span><span style="display:flex;"><span>]
</span></span></code></pre></div></li>
</ol>
<h4 id="パラメータ説明">
<a class="header-anchor" href="#%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e8%aa%ac%e6%98%8e"></a>
パラメータ説明
</h4><table>
  <thead>
      <tr>
          <th style="text-align: left">名称</th>
          <th style="text-align: left">変数名</th>
          <th style="text-align: left">必須</th>
          <th style="text-align: left">型</th>
          <th style="text-align: left">例</th>
          <th style="text-align: left">説明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">テンプレートID</td>
          <td style="text-align: left">なし</td>
          <td style="text-align: left">はい</td>
          <td style="text-align: left">int</td>
          <td style="text-align: left">001</td>
          <td style="text-align: left">テンプレートのファイル名。数字を推奨し、重複不可。</td>
      </tr>
      <tr>
          <td style="text-align: left">エイリアス</td>
          <td style="text-align: left">name</td>
          <td style="text-align: left">はい</td>
          <td style="text-align: left">string</td>
          <td style="text-align: left">デフォルトテンプレート</td>
          <td style="text-align: left">フロントエンドに表示されるテンプレートのエイリアス</td>
      </tr>
      <tr>
          <td style="text-align: left">X,Y</td>
          <td style="text-align: left">data</td>
          <td style="text-align: left">はい</td>
          <td style="text-align: left">array</td>
          <td style="text-align: left">[150,200]</td>
          <td style="text-align: left">QRコード生成の左上隅の開始X（横座標）、Y（縦座標）座標。負の値は不可で、テンプレートサイズより小さいこと。</td>
      </tr>
      <tr>
          <td style="text-align: left">テンプレートタイトル</td>
          <td style="text-align: left">title</td>
          <td style="text-align: left">いいえ</td>
          <td style="text-align: left">bool</td>
          <td style="text-align: left">false</td>
          <td style="text-align: left">テンプレートタイトルを有効にするかどうか。テンプレートがサポートしている場合（デフォルトテンプレートなど）に使用。空でも可。</td>
      </tr>
      <tr>
          <td style="text-align: left">サイズ</td>
          <td style="text-align: left">size</td>
          <td style="text-align: left">いいえ</td>
          <td style="text-align: left">int</td>
          <td style="text-align: left">20</td>
          <td style="text-align: left">QRコードの生成サイズ。デフォルトは20。空でも可。</td>
      </tr>
  </tbody>
</table>
<p>はい、とても簡単です！
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/08/04/0072Vf1pgy1g5nlv1bwkrj311d0llgts.jpg" alt=""></p>
        
        <hr><p>この記事は2019-08-04に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2019-08-04です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>フォームをスマートに送信するには</title>
      <link>https://zh.moejue.cn/ja/posts/91/</link>
      <pubDate>Mon, 06 May 2019 07:28:33 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/91/</guid>
      <description>
        <![CDATA[<h1>フォームをスマートに送信するには</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>これは非常に基本的なHTMLフォームの送信に関する問題ですが、非常に実用的なテクニックでもあります。
私の業務シーンは次のとおりです：
inputを動的に作成できるフォームです。下の図のように。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1v9kcon30j30l007bdgd.jpg" alt="">
これは、inputのnameを固定値にできないことを意味します。さもなければ、間違いなく上書きされてしまいます。</p>
<p>1つ目は、従来の一般的な送信方法で、送信する各inputに一意のnameを付けます。</p>
<form id="form1" action="./index.php" method="get">
    <div class="form-control">
        <input type="text" name="name1" />
        <input type="text" name="num1" />
        <input type="text" name="img1" />
    </div>
    <br>
    <div class="form-control">
        <input type="text" name="name2" />
        <input type="text" name="num2" />
        <input type="text" name="img2" />
    </div>
    <br>
    <div class="form-control">
        <input type="text" name="name3" />
        <input type="text" name="num3" />
        <input type="text" name="img3" />
    </div>
    ......
  <input type="submit" value="Submit" />
</form>
<p>ブラウザが送信したデータをキャプチャした形式は次のようになります。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1va4e7vtmj30bx04zdg1.jpg" alt="">
サーバー側で取得して出力するとこのようになり、バックエンドでのデータ処理には非常に不親切です。</p>
<p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1va3y1ep2j309805i0sk.jpg" alt=""></p>
<p>2つ目は、配列形式でのフォーム送信です。</p>
<form id="form1" action="./index.php" method="get">
    <div class="form-control">
        <input type="text" name="infos\[1\]\[name\]" />
        <input type="text" name="infos\[1\]\[num\]" />
        <input type="text" name="infos\[1\]\[img\]" />
    </div>
    <br>
    <div class="form-control">
        <input type="text" name="infos\[2\]\[name\]" />
        <input type="text" name="infos\[2\]\[num\]" />
        <input type="text" name="infos\[2\]\[img\]" />
    </div>
    <br>
    <div class="form-control">
        <input type="text" name="infos\[3\]\[name\]" />
        <input type="text" name="infos\[3\]\[num\]" />
        <input type="text" name="infos\[3\]\[img\]" />
    </div>
    ......
  <input type="submit" value="Submit" />
</form>
<p>ブラウザとバックエンドでの出力はそれぞれ次のようになります。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1va7ioy7qj30cg0c3q2s.jpg" alt="">
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1va7js1u3j30bd04v74j.jpg" alt=""></p>
<p>よく見ると、送信されたnameの値が変化し、同じような？配列？になっていることがわかります。
バックエンドに送信すると、データが以前よりもずっと整理されていることがわかります。
ただし、ここで注意すべき点は、送信する配列のキーに引用符を使用する必要はないということです。さもなければ、引用符もキーの一部になってしまいます。</p>
<p>もちろん、実際の開発では、送信するグループの数（上記の1、2、3のような）が不確定で、フロントエンドで自由に追加できるという問題に遭遇することもあります。このような場合、どうやって配列を使ってこれらの内容を送信すればよいのでしょうか？
以下が私の業務での実際の解決策です<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1v9o6jon8j316g0fwwh3.jpg" alt="">
このようにすれば、2次元配列のキーを自分で管理する必要がなくなり、ブラウザが自動的に生成してくれます。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1v9o5uhnuj30a109igli.jpg" alt="">
バックエンドで受信したデータはこのようになり、非常に処理しやすくなります。
<img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/05/06/0072Vf1pgy1g1vaez0ltqj30730bya9y.jpg" alt="">
この方法は、不確定な数の関連データセットをまとめて送信する場合に適しています。
一件落着！〜</p>
        
        <hr><p>この記事は2019-05-06に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2019-05-06です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>よく使われる機能のクエリSQL</title>
      <link>https://zh.moejue.cn/ja/posts/90/</link>
      <pubDate>Wed, 10 Apr 2019 09:33:11 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/90/</guid>
      <description>
        <![CDATA[<h1>よく使われる機能のクエリSQL</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2019/04/10/0072Vf1pgy1g1xv7hy779j30d6097glr.jpg" alt=""> <strong>1、シーン：ある選手のランキングと、1つ上の順位の選手との票差をクエリする</strong><br>
方法2（重複を除外してソートし、自分より票の少ない数をクエリする）</p>
<p>$temp = DB::fetch_first(&ldquo;SELECT distinct total+jewel_vote+forge_vote  ,COUNT(*)+1 AS RANK FROM &quot; . DB::table(&lsquo;vote_competition&rsquo;) .&rdquo; WHERE total+jewel_vote+forge_vote&gt;&quot; . $competition[&lsquo;all&rsquo;] . &quot; and aid={$aid} ORDER by forge_vote desc&quot;);
$rank = $temp[&lsquo;RANK&rsquo;];
1つ上の順位の選手の票数を直接クエリすることはできない
if ($temp[&rsquo;total+jewel_vote+forge_vote&rsquo;]) {
//ここでクエリされるのは1位の選手との票差です
$up = $temp[&rsquo;total+jewel_vote+forge_vote&rsquo;]-$competition[&lsquo;all&rsquo;];
}</p>
<p>方法1（変数を定義して累加ソート）</p>
<p>$temp = DB::fetch_all(&ldquo;SELECT a.cid,a.total,a.forge_vote,a.jewel_vote,(@rowNum:=@rowNum+1) AS rank FROM pre_vote_competition AS a, (SELECT (@rowNum :=0) ) b WHERE aid={$aid} ORDER BY (a.total+a.forge_vote+a.jewel_vote) DESC &ldquo;);
foreach ($temp as $key =&gt; $value) {
if ($value[&lsquo;cid&rsquo;] == $cid) {
//現在の自分のランキング
$rank = $value[&lsquo;rank&rsquo;];
if ($up) {
$up = $up - ($value[&rsquo;total&rsquo;] +  $value[&lsquo;forge_vote&rsquo;] + $value[&lsquo;jewel_vote&rsquo;]);
}
break;
}
//1つ上の順位の選手との票差
$up = $value[&rsquo;total&rsquo;] +  $value[&lsquo;forge_vote&rsquo;] + $value[&lsquo;jewel_vote&rsquo;];
}</p>
        
        <hr><p>この記事は2019-04-10に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2019-04-10です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>萌音影视 - オンライン動画アプリ</title>
      <link>https://zh.moejue.cn/ja/posts/75/</link>
      <pubDate>Tue, 25 Sep 2018 07:41:02 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/75/</guid>
      <description>
        <![CDATA[<h1>萌音影视 - オンライン動画アプリ</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p><a href="https://www.52ecy.cn/">ブログ</a> | <a href="https://www.moeins.cn/">デモサイト</a> | <a href="http://shang.qq.com/wpa/qunwpa?idkey=618c7f3214a5c5ed06c9343a395371a8b27318e5190491bf7283fbf7468e35d7">QQグループ</a> | <a href="https://github.com/178146582/moeins">GitHub</a></p>
<p>洗練されたLaravelフレームワークと、全然可愛くないMeizi UIに基づいたオンライン動画アプリケーション</p>
<h4 id="作者より">
<a class="header-anchor" href="#%e4%bd%9c%e8%80%85%e3%82%88%e3%82%8a"></a>
作者より
</h4><p>オンライン動画サイトはどこにでも溢れていますが、それは私が自分で一つ書くことを妨げるものではありません。こうすれば、後で自分でアニメを見るのも便利になりますし、結局、自分で手を動かしてこそ豊かになれるものです。さらに新しい知識も学べるのですから、なんと素晴らしいことでしょう。</p>
<p>ページデザインは一部のウェブサイトを参考にしました。動画リソースはすべてインターネットからのものです。もし著作権侵害がありましたら、速やかにご連絡ください。</p>
<p>一緒にあのうんざりする60秒広告を捨てましょう〜</p>
<ul>
<li>データベースなし、バックエンドモードなし、設定ファイルは一つだけ(<code>config/web.php</code>)</li>
<li>広告なし、VIP解析をサポート、公式ソース、高速、多チャンネル、多カテゴリ</li>
</ul>
<p>To-do:</p>
<ul>
<li>
<ul>
<li>独立したチャンネルホームページ</li>
</ul>
</li>
<li>
<ul>
<li>テレビ局ライブ配信</li>
</ul>
</li>
<li>
<ul>
<li>複数の解析インターフェース</li>
</ul>
</li>
<li>
<ul>
<li>追加予定&hellip;</li>
</ul>
</li>
</ul>
<h4 id="スポンサー限定版">
<a class="header-anchor" href="#%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b5%e3%83%bc%e9%99%90%e5%ae%9a%e7%89%88"></a>
スポンサー限定版
</h4><p>これはデュアルバージョンアプリケーションです。つまり、2つの異なるバージョンがあります。スポンサー版は通常版を最適化したもので、機能とパフォーマンスが大幅に向上し、実行速度が大幅に向上し、優先的な更新が維持されます。</p>
<ul>
<li>さて、問題です。スポンサー限定版はどのように入手できますか？</li>
</ul>
<p><a href="https://github.com/178146582/qr#author">ここ</a> または <a href="https://pay.52ecy.cn/">ここ</a> でプロジェクトに58元以上を寄付することで入手できます。</p>
<p>もちろん、もしプロジェクトがあなたのお役に立てたなら、またはあなたが必要とするなら、私たちを支援することを選択できます。たとえわずかな金額でも、それは愛です。</p>
<p>オープンソースプロジェクトを書く人が利益のために書くことはないと思います。結局のところ、それはレンガ工場で一日レンガを運ぶよりも稼げないからです。</p>
<h2 id="インストール要件">
<a class="header-anchor" href="#%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e8%a6%81%e4%bb%b6"></a>
インストール要件
</h2><ul>
<li>LNMP/AMP (PHP5.6+が必要)</li>
<li>curl、OpenSSL拡張機能</li>
<li>Composer</li>
</ul>
<h2 id="composerによるメインプログラムのインストール">
<a class="header-anchor" href="#composer%e3%81%ab%e3%82%88%e3%82%8b%e3%83%a1%e3%82%a4%e3%83%b3%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
Composerによるメインプログラムのインストール
</h2><h4 id="1-composerを使用してmoeinsをインストール">
<a class="header-anchor" href="#1-composer%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6moeins%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab"></a>
1. Composerを使用してmoeinsをインストール
</h4><pre tabindex="0"><code>$ composer create-project a-jue/moeins 
</code></pre><pre tabindex="0"><code>#依存ライブラリのインストール後、インストールスクリプトが自動的に実行されます
#以下のプロンプトが表示されたらインストール完了です

&gt; Illuminate\Foundation\ComposerScripts::postInstall
&gt; php artisan optimize
Generating optimized class loader
The compiled services file has been removed.
&gt; php artisan key:generate
Application key [base64:Hx0I9UUQg7OyIz8lpDYG6Y/gW1uxS760ERdWfGG2jyQ=] set successfully. 
</code></pre><h4 id="2-ディレクトリ権限">
<a class="header-anchor" href="#2-%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a8%a9%e9%99%90"></a>
2. ディレクトリ権限
</h4><p><code>public</code>サブディレクトリを公開Webディレクトリとして設定します</p>
        
        <hr><p>この記事は2018-09-25に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2018-09-25です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>CSS3ランダム背景画像切り替えエフェクト</title>
      <link>https://zh.moejue.cn/ja/posts/4/</link>
      <pubDate>Wed, 16 May 2018 11:58:08 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/4/</guid>
      <description>
        <![CDATA[<h1>CSS3ランダム背景画像切り替えエフェクト</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>CSS3のランダム背景画像フェードイン・フェードアウト切り替えエフェクト デモ効果はこの記事の背景に表示されています<br>
皆さんが私の幻想領域二次元限定版のソースコードを解析するのに苦労しているようなので（30分以上もかけている人もいるようです）、時間を見つけて整理して公開することにしました<br>
当初はjQueryで実装する予定でしたが、CSS3の@keyframesルールに気づきました。CSS3は、かつてJSでしか実現できなかった効果を実装できるほど強力になっています</p>
<h2 id="定義と使い方">
<a class="header-anchor" href="#%e5%ae%9a%e7%be%a9%e3%81%a8%e4%bd%bf%e3%81%84%e6%96%b9"></a>
定義と使い方
</h2><p>@keyframesルールを使用することで、アニメーションを作成できます。</p>
<p>アニメーション作成の原理は、あるCSSスタイルを別のスタイルに徐々に変化させることです。</p>
<p>アニメーションの過程で、このCSSスタイルを複数回変更することができます。</p>
<p>変化が起こるタイミングは、パーセンテージで指定するか、キーワード「from」と「to」（それぞれ0%と100%に相当）で指定します。</p>
<p>0%はアニメーションの開始時点、100%はアニメーションの終了時点です。</p>
<p>最高のブラウザサポートを得るためには、常に0%と100%のセレクタを定義する必要があります。</p>
<p>注：アニメーションの見た目を制御するには、アニメーション関連のプロパティを使用し、アニメーションをセレクタにバインドしてください。</p>
<p>CSSのコア部分（画像アドレスの変更を忘れないでください）</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-css" data-lang="css"><span style="display:flex;"><span><span style="color:#f92672">body</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background</span>: <span style="color:#ae81ff">#000</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-attachment</span>: <span style="color:#66d9ef">fixed</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">word-wrap</span>: <span style="color:#66d9ef">break-word</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">background-size</span>: <span style="color:#66d9ef">cover</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">background-size</span>: <span style="color:#66d9ef">cover</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-size</span>: <span style="color:#66d9ef">cover</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-repeat</span>: <span style="color:#66d9ef">no-repeat</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">ul</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">list-style</span>: <span style="color:#66d9ef">none</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">1</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341099</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">2</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341159</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">3</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341149</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">4</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341139</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">5</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341129</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">6</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-image</span>: url(<span style="color:#e6db74">https://random.52ecy.cn/randbg.php?v=1520341119</span>)
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span><span style="color:#f92672">,</span>.<span style="color:#a6e22e">cb-slideshow</span>:<span style="color:#a6e22e">after</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">position</span>: <span style="color:#66d9ef">fixed</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">width</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">height</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">top</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">left</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">z-index</span>: <span style="color:#ae81ff">-2</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span>:<span style="color:#a6e22e">after</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">content</span>: <span style="color:#e6db74">&#39;&#39;</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">width</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">height</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">position</span>: <span style="color:#66d9ef">absolute</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">top</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">left</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">color</span>: <span style="color:#66d9ef">transparent</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-size</span>: <span style="color:#66d9ef">cover</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-position</span>: <span style="color:#ae81ff">50</span><span style="color:#66d9ef">%</span> <span style="color:#ae81ff">50</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">background-repeat</span>: <span style="color:#66d9ef">none</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">z-index</span>: <span style="color:#ae81ff">-2</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">backface-visibility</span>: <span style="color:#66d9ef">hidden</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation</span>: imageAnimation <span style="color:#ae81ff">36</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">linear</span> <span style="color:#66d9ef">infinite</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation</span>: imageAnimation <span style="color:#ae81ff">36</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">linear</span> <span style="color:#66d9ef">infinite</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation</span>: imageAnimation <span style="color:#ae81ff">36</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">linear</span> <span style="color:#66d9ef">infinite</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation</span>: imageAnimation <span style="color:#ae81ff">36</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">linear</span> <span style="color:#66d9ef">infinite</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation</span>: imageAnimation <span style="color:#ae81ff">36</span><span style="color:#66d9ef">s</span> <span style="color:#66d9ef">linear</span> <span style="color:#66d9ef">infinite</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">2</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">6</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">6</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">6</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">6</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">6</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">3</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">12</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">12</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">12</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">12</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">12</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">4</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">18</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">18</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">18</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">18</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">18</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">5</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">24</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">24</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">24</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">24</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">24</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>.<span style="color:#a6e22e">cb-slideshow</span> <span style="color:#f92672">li</span>:<span style="color:#a6e22e">nth-child</span><span style="color:#f92672">(</span><span style="color:#f92672">6</span><span style="color:#f92672">)</span> <span style="color:#f92672">span</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">30</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-moz-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">30</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-o-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">30</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">-ms-</span><span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">30</span><span style="color:#66d9ef">s</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">animation-delay</span>: <span style="color:#ae81ff">30</span><span style="color:#66d9ef">s</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>@<span style="color:#66d9ef">-webkit-keyframes</span> <span style="color:#f92672">imageAnimation</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">0</span><span style="color:#f92672">%</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-timing-function</span>: <span style="color:#66d9ef">ease-in</span>
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">8</span><span style="color:#f92672">%</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">transform</span>: scale(<span style="color:#ae81ff">1.05</span>);
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">animation-timing-function</span>: <span style="color:#66d9ef">ease-out</span>
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">17</span><span style="color:#f92672">%</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">transform</span>: scale(<span style="color:#ae81ff">1.1</span>) rotate(<span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">25</span><span style="color:#f92672">%</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">-webkit-</span><span style="color:#66d9ef">transform</span>: scale(<span style="color:#ae81ff">1.1</span>) rotate(<span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">100</span><span style="color:#f92672">%</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">opacity</span>: <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>もちろん、HTMLコードと組み合わせる必要があります<br>
HTML部分（中のテキスト部分と<li>の数は自由に変更可能です）</p>
        
        <hr><p>この記事は2018-05-16に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2018-05-16です</p>]]>
      </description>
      
        <category>css</category>
      
    </item>
    
    

    <item>
      <title>ランダム二次元画像API第二弾</title>
      <link>https://zh.moejue.cn/ja/posts/60/</link>
      <pubDate>Sun, 04 Mar 2018 11:01:46 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/60/</guid>
      <description>
        <![CDATA[<h1>ランダム二次元画像API第二弾</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p><img src="https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2018/03/04/0072Vf1pgy1fqeqjtrbj1j30tn0lrhdt.jpg" alt=""><br>
約3ヶ月ぶり、最初のランダム二次元画像APIの公開からかなりの時間が経ちました。<br>
第二弾API、突然の登場です。</p>
<h2 id="更新内容">
<a class="header-anchor" href="#%e6%9b%b4%e6%96%b0%e5%86%85%e5%ae%b9"></a>
更新内容：
</h2><p>前バージョンと比較して、今回の画像は、背景画像やデスクトップ壁紙などにより適しています。<br>
前バージョンはまさに寄せ集めで、あらゆる種類の画像があり、ひどいものでした（私自身も使っていません）。今回のバージョンでは、時間をかけて一部の画像（1080P以上）を選別し、新浪雲にアップロードしました。<br>
真の意味でHTTPSをサポートし、画像はすべて新浪雲でホストされており、速度も向上しました。<br>
あらゆる意味でのパラメータ設定を削除しました。<br>
画像コンテンツはすべてアニメ・二次元画像です（全年齢向け（笑））。</p>
<h2 id="apiエンドポイント">
<a class="header-anchor" href="#api%e3%82%a8%e3%83%b3%e3%83%89%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88"></a>
APIエンドポイント：
</h2><p><a href="https://random.52ecy.cn/randbg.php">https://random.52ecy.cn/randbg.php</a></p>
<p>はい、呼び出しはこれほど簡単です。直接アクセスするだけで利用できます。どうぞお試しください。<br>
<a href="https://www.52ecy.cn/post-56.html">以前の簡易版</a><br>
<a href="https://random.52ecy.cn/">プロジェクトホームページ</a></p>
<p>ランダムアニメ壁紙、毎日更新して、毎回違う画像を楽しめます。</p>
<p><a href="https://random.52ecy.cn/"><br>
</a></p>
        
        <hr><p>この記事は2018-03-04に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2018-03-04です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
    

    <item>
      <title>HTML5キャンバス - ボールの衝突</title>
      <link>https://zh.moejue.cn/ja/posts/41/</link>
      <pubDate>Tue, 18 Jul 2017 09:17:31 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/41/</guid>
      <description>
        <![CDATA[<h1>HTML5キャンバス - ボールの衝突</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>HTML5は、World Wide Webのコア言語であり、標準汎用マークアップ言語を応用したハイパーテキストマークアップ言語（HTML）の5回目の大幅な改訂版です。<br>
1999年以降、HTML 4.01は大きく変化しました。今日では、HTML 4.01の一部の要素は廃止され、これらの要素はHTML5で削除または再定義されています。現代のインターネットアプリケーションをより良く扱うために、HTML5では多くの新しい要素と機能が追加されました。例えば、図形の描画、マルチメディアコンテンツ、より良いページ構造、より良いフォーム処理、そしてドラッグ＆ドロップ要素、ジオロケーション、ウェブアプリケーションキャッシュ、ストレージ、ウェブワーカーなどのいくつかのAPIが含まれます。</p>
<p>タグ</p>
<p>説明</p>
<canvas>
<p>タグは、グラフやその他の画像などのグラフィックを定義します。このタグはJavaScriptの描画APIに基づいています。</p>
<p>実行結果の表示：</p>
<p>お使いのブラウザはHTML5をサポートしていません</p>
<p>コード部分：</p>
<canvas id="my-canvas" width="500px" height="400px" style="border:1px solid red" >
お使いのブラウザはHTML5をサポートしていません</canvas>
<script type="text/javascript">
	// キャンバスオブジェクトを取得
	var my_canvas = document.getElementById("my-canvas");
	// 描画コンテキスト（ブラシ）を取得
	var my_huabi = my_canvas.getContext("2d");
	var x = 50;
	var y = 50;
	var r = 20;
	function deawBall(x,y){
		// ブラシの色を設定
		my_huabi.fillStyle = "green";
		// 新しいパスを開始
		my_huabi.beginPath();
		// ボールを描画
		my_huabi.arc(x, y, r, 0, 2 * Math.PI);
		// パスを閉じる
		my_huabi.fill();
	}
	var fx_x = true;//fx_xがtrueの場合、x軸方向に移動
	var fx_y = true;//fx_yがtrueの場合、y軸方向に移動
	var speen = 1;
	// タイマー
	window.setInterval("moveBall()", 10);
	function moveBall(){
		// 現在のボールの移動方向を判断
		if(fx_x == true){
			x += speen;
			if(x >= 500-r){
				// 下端に達したら、上向きに跳ね返る
				fx_x = false;
			}
		}else{
			x -= speen;
			if(x <= 0+r){
				// 上端に達したら、下向きに跳ね返る
				fx_x = true;
			}
		}
		if(fx_y == true){
			y += speen;
			if(y >= 400-r){
				// 左端に達したら、右向きに跳ね返る
				fx_y = false;
			}
		}else{
			y -= speen;
			if(y <= 0+r){
				// 右端に達したら、左向きに跳ね返る
				fx_y = true;
			}
		}
		// キャンバスをクリアして再描画
		my_huabi.clearRect(0, 0, 500, 400);
		deawBall(x, y);
	}
</script>
<p>// キャンバスオブジェクトを取得
var my_canvas = document.getElementById(&ldquo;my-canvas&rdquo;);
// 描画コンテキスト（ブラシ）を取得
var my_huabi = my_canvas.getContext(&ldquo;2d&rdquo;);
var x = 50;
var y = 50;
var r = 20;
function deawBall(x,y){
// ブラシの色を設定
my_huabi.fillStyle = &ldquo;green&rdquo;;
// 新しいパスを開始
my_huabi.beginPath();
// ボールを描画
my_huabi.arc(x, y, r, 0, 2 * Math.PI);
// パスを閉じる
my_huabi.fill();
}
var fx_x = true;//fx_xがtrueの場合、x軸方向に移動
var fx_y = true;//fx_yがtrueの場合、y軸方向に移動
var speen = 1;
// タイマー
window.setInterval(&ldquo;moveBall()&rdquo;, 10);
function moveBall(){
// 現在のボールの移動方向を判断
if(fx_x == true){
x += speen;
if(x &gt;= 500-r){
// 下端に達したら、上向きに跳ね返る
fx_x = false;
}
}else{
x -= speen;
if(x &lt;= 0+r){
// 上端に達したら、下向きに跳ね返る
fx_x = true;
}
}
if(fx_y == true){
y += speen;
if(y &gt;= 400-r){
// 左端に達したら、右向きに跳ね返る
fx_y = false;
}
}else{
y -= speen;
if(y &lt;= 0+r){
// 右端に達したら、左向きに跳ね返る
fx_y = true;
}
}
// キャンバスをクリアして再描画
my_huabi.clearRect(0, 0, 500, 400);
deawBall(x, y);
}</p>
        
        <hr><p>この記事は2017-07-18に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2017-07-18です</p>]]>
      </description>
      
        <category>HTML</category>
      
    </item>
    
  </channel>
</rss>
