<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>粥粥个人博客</title>
        <link>https://blog.zhoujump.club/</link>
        <description>Recent content on 粥粥个人博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 02 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.zhoujump.club/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>删除具有大量部署的cloudflare pages项目</title>
        <link>https://blog.zhoujump.club/p/delete-cloudflare-project/</link>
        <pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/delete-cloudflare-project/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/delete-cloudflare-project/cover.zh-cn.webp" alt="Featured image of post 删除具有大量部署的cloudflare pages项目" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/delete-cloudflare-project/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;删除具有大量部署的cloudflare pages项目&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;部署量不是很大&#34;&gt;部署量不是很大
&lt;/h2&gt;&lt;p&gt;如果你的部署量也就是一两百，可以尝试手动删除旧的部署，删除到部署数量小于一百一般就能删除了。
&lt;img src=&#34;https://blog.zhoujump.club/p/delete-cloudflare-project/1-1.webp&#34;
	width=&#34;1460&#34;
	height=&#34;783&#34;
	
	loading=&#34;lazy&#34;
	
		alt=&#34;如何删除部署&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;186&#34;
		data-flex-basis=&#34;447px&#34;
	
&gt;&lt;/p&gt;</description>
        </item>
        <item>
        <title>记录一个纯CSS实现滚动驱动动画的效果</title>
        <link>https://blog.zhoujump.club/p/animation-timeline/</link>
        <pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/animation-timeline/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/animation-timeline/cover.zh-cn.webp" alt="Featured image of post 记录一个纯CSS实现滚动驱动动画的效果" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/animation-timeline/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;记录一个纯CSS实现滚动驱动动画的效果&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看一下这个简单的案例&#34;&gt;先看一下这个简单的案例
&lt;/h2&gt;&lt;h3 id=&#34;代码&#34;&gt;代码：
&lt;/h3&gt;&lt;p&gt;你也可以直接划到下边看效果。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;out-cont&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c&#34;&gt;&amp;lt;!-- 最外层元素，用于框定元素需要固定的距离 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;inner-cont&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c&#34;&gt;&amp;lt;!-- 内层元素，用于固定元素的位置 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;animation-item&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;c&#34;&gt;&amp;lt;!-- 播放动画的元素内容 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;out-cont&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;/* 最外层元素，用于框定元素需要固定的距离，这里表示元素将被固定两个屏幕的高度 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;200&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;vh&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;relative&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;inner-cont&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;/* 内层元素，用于固定元素的位置，使用sticky使元素在范围内固定 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;vh&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;sticky&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;top&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;vh&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;flex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;align-items&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;center&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;justify-content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;center&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;animation-item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;/* 播放动画的元素内容，使用animation-timeline实现滚动驱动动画 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;aspect-ratio&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;background-color&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mh&#34;&gt;#2E74B5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;animation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;move&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;linear&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;forwards&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;animation-timeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;view&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;animation-range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;contain&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;keyframes&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;move&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;transform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;deg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;border-radius&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;transform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;360&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;deg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;border-radius&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;border-radius&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;transform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;720&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;deg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;效果&#34;&gt;效果：
&lt;/h3&gt;&lt;div class=&#34;out-cont&#34;&gt;
    &lt;div class=&#34;inner-cont&#34;&gt;
        &lt;div class=&#34;animation-item&#34;&gt;&lt;/div&gt;
        &lt;div class=&#34;animation-view&#34;&gt;
            &lt;div class=&#34;animation-view-out&#34;&gt;
                .out-cont
                &lt;div class=&#34;animation-view-inner&#34;&gt;
                    .inner-cont
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div class=&#34;animation-view-screen&#34;&gt;
                视口
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;sticky粘性布局&#34;&gt;sticky：粘性布局
&lt;/h2&gt;&lt;p&gt;对于前端码农来说这个玩意并不陌生，所以就只简单介绍一下：&lt;br&gt;
position:sticky是介于position:relative与position:fixed之间的一种布局方式。当父元素出现在屏幕中时它表现得像fixed，会把自己固定在屏幕上。当父元素出现在屏幕外时它表现得像relative，会按照正常的文档流进行布局，被父容器带走。&lt;br&gt;
关于这个案例是如何使用sticky实现类似元素固定的效果的，上面效果示例右边有一个简单的展示，可以帮助理解。而且这个展示也是纯css的哦。&lt;/p&gt;</description>
        </item>
        <item>
        <title>在vue中contenteditable元素的双向数据绑定</title>
        <link>https://blog.zhoujump.club/p/contenteditable-vue/</link>
        <pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/contenteditable-vue/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/contenteditable-vue/cover.zh-cn.webp" alt="Featured image of post 在vue中contenteditable元素的双向数据绑定" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/contenteditable-vue/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;在vue中contenteditable元素的双向数据绑定&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;记录一下在vue中使用contenteditable属性所需要注意的地方。&lt;/p&gt;</description>
        </item>
        <item>
        <title>如何向页面中嵌入UnityWeb3D</title>
        <link>https://blog.zhoujump.club/p/insert-unity/</link>
        <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/insert-unity/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/insert-unity/cover.zh-cn.webp" alt="Featured image of post 如何向页面中嵌入UnityWeb3D" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/insert-unity/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;如何向页面中嵌入UnityWeb3D&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;随着现在设备性能的提升，向网站中插入3D模型已经不是啥稀奇事情了。而且插入3D元素能极高地提高用户体验，再加上一些用户交互就能给人非常惊艳的体验。&lt;br&gt;
&lt;img src=&#34;https://blog.zhoujump.club/p/insert-unity/1-1.gif&#34;
	width=&#34;2542&#34;
	height=&#34;860&#34;
	
	loading=&#34;lazy&#34;
	
		alt=&#34;插入UnityWeb3D效果的示例&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;295&#34;
		data-flex-basis=&#34;709px&#34;
	
&gt;
目前比较流行的Web3D技术有three.js、还有可视化编辑模型与交互的spline，不过three.js的学习难度和spline的高昂价格已经足够让一部分人望而却步了。&lt;br&gt;
那有没有更经济和简单的技术呢？有的有的，兄弟有的，UnityWeb3D也许就是一个不错的选择。&lt;/p&gt;</description>
        </item>
        <item>
        <title>自己写一个小小vue - getter与setter</title>
        <link>https://blog.zhoujump.club/p/getter-setter/</link>
        <pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/getter-setter/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/getter-setter/cover.zh-cn.webp" alt="Featured image of post 自己写一个小小vue - getter与setter" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/getter-setter/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;自己写一个小小vue - getter与setter&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我相信各位前端大佬和小佬们都听过这句话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;vue2使用getter与setter来控制数据，vue3则直接使用proxy。&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯css实现跑马灯效果</title>
        <link>https://blog.zhoujump.club/p/css-marquee/</link>
        <pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/css-marquee/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/css-marquee/cover.zh-cn.webp" alt="Featured image of post 纯css实现跑马灯效果" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/css-marquee/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯css实现跑马灯效果&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;div class=&#34;marquee&#34;&gt;
  &lt;span&gt;我是练习市场两年半的个人实习生，喜欢html、css、js。&lt;/span&gt;
  &lt;span&gt;我是练习市场两年半的个人实习生，喜欢html、css、js。&lt;/span&gt;
&lt;/div&gt;
&lt;style&gt;
  .marquee {
    overflow: hidden;
    white-space: nowrap;
    width: 400px;
    display: flex;
  }
  .marquee span {
    animation: marquee 10s linear infinite;
  }
  @keyframes marquee {
    100% {transform: translateX(-100%);}
  }
&lt;/style&gt;
&lt;h2 id=&#34;marquee标签&#34;&gt;&lt;code&gt;&amp;lt;marquee&amp;gt;&lt;/code&gt;标签
&lt;/h2&gt;&lt;p&gt;这时候一些前端大佬就会站起来说了，这不就是一个&lt;code&gt;&amp;lt;marquee&amp;gt;&lt;/code&gt;标签的事吗？&lt;br&gt;
不过这个元素目前已经被废弃了，虽然还能继续使用，但保不齐哪天就被主流浏览器移除了。我们还是少用为妙
&lt;img src=&#34;https://blog.zhoujump.club/p/css-marquee/1-1.webp&#34;
	width=&#34;794&#34;
	height=&#34;228&#34;
	
	loading=&#34;lazy&#34;
	
		alt=&#34;跑马灯已经被移除了&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;348&#34;
		data-flex-basis=&#34;835px&#34;
	
&gt;&lt;/p&gt;</description>
        </item>
        <item>
        <title>记一次将博客网站迁移</title>
        <link>https://blog.zhoujump.club/p/gitlab-to-cloudflare/</link>
        <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/gitlab-to-cloudflare/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/gitlab-to-cloudflare/cover.webp" alt="Featured image of post 记一次将博客网站迁移" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/gitlab-to-cloudflare/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;记一次将博客网站迁移&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;起因&#34;&gt;起因
&lt;/h2&gt;&lt;p&gt;因为某一天在gitlab上号时发现被下发了60天死亡通知，账号会在两个月后被删除，所以网站搬家就被提上了日程。&lt;br&gt;
&lt;img src=&#34;https://blog.zhoujump.club/p/gitlab-to-cloudflare/1-1.webp&#34;
	width=&#34;1255&#34;
	height=&#34;238&#34;
	
	loading=&#34;lazy&#34;
	
		alt=&#34;gitlab死亡通知&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;527&#34;
		data-flex-basis=&#34;1265px&#34;
	
&gt;
当然氪金是不可能氪金的，于是把主意打到了赛博活佛cloudflare身上。&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯css实现环形进度条</title>
        <link>https://blog.zhoujump.club/p/circular-progression/</link>
        <pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/circular-progression/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/circular-progression/cover.zh-cn.webp" alt="Featured image of post 纯css实现环形进度条" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/circular-progression/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯css实现环形进度条&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;p&gt;这个环形进度条使用纯css制作，使用css变量控制进度，你可以打开开发者工具选中它改变它内联的css变量&lt;code&gt;--progress: 60&lt;/code&gt;，进度和内容均会发生变化。&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯CSS实现一个炫酷的输入框效果</title>
        <link>https://blog.zhoujump.club/p/valid_input/</link>
        <pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/valid_input/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/valid_input/cover.zh-cn.webp" alt="Featured image of post 纯CSS实现一个炫酷的输入框效果" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/valid-input/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯CSS实现一个炫酷的输入框效果&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;div class=&#34;demo-input&#34;&gt;
	&lt;input required/&gt;
	&lt;label&gt;username&lt;/label&gt;
&lt;/div&gt;
&lt;style&gt;
	.demo-input{
		position: relative;
		height: 40px;
		width: 300px;
		margin: 8px;
	}
	.demo-input *{transition-duration: 100ms}
	.demo-input input{
		width: 100%;
		height: 100%;
		box-sizing: border-box;
		border: 2px solid gray;
		border-radius: 6px;
		outline: none;
		padding-left: 10px;
		font-size: 20px;
		color: #006080;
	}
	.demo-input input:valid,
	.demo-input input:focus
	{border: 2px solid #006080}
	.demo-input label{
		position: absolute;
		top:0;
		left: 10px;
		font-size: 20px;
		color: grey;
		line-height: 36px;
		pointer-events: none;
	}
	.demo-input input:valid + label,
	.demo-input input:focus + label
	{
		color: #006080;
		top:-12px;
		font-size: 18px;
		padding: 0 4px;
		background-color: white;
		line-height: 18px;
	}
&lt;/style&gt;
&lt;h2 id=&#34;valid与invalid伪类&#34;&gt;&lt;code&gt;:valid&lt;/code&gt;与&lt;code&gt;:invalid&lt;/code&gt;伪类
&lt;/h2&gt;&lt;p&gt;这两个伪类可以用于&lt;code&gt;input&lt;/code&gt;元素和&lt;code&gt;select&lt;/code&gt;元素，用于选中校验通过和未校验通过的输入框。我们通过下边这个简单的小案例了解一下它们：&lt;br&gt;
这个输入框会校验输入是否是个电子邮箱地址，否则背景颜色将红色警告。&lt;/p&gt;</description>
        </item>
        <item>
        <title>巧用属性选择器纯CSS实现筛选器</title>
        <link>https://blog.zhoujump.club/p/checkbox-filter/</link>
        <pubDate>Fri, 18 Oct 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/checkbox-filter/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/checkbox-filter/cover.zh-cn.webp" alt="Featured image of post 巧用属性选择器纯CSS实现筛选器" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/checkbox-filter/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;巧用属性选择器纯CSS实现筛选器&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看看这个样例的效果&#34;&gt;先看看这个样例的效果
&lt;/h2&gt;&lt;div class=&#34;filter&#34;&gt;
	&lt;input checked type=&#34;radio&#34; name=&#34;filter&#34; id=&#34;all&#34;/&gt;
	&lt;label for=&#34;all&#34;&gt;所有&lt;/label&gt;
	&lt;input type=&#34;radio&#34; name=&#34;filter&#34; id=&#34;yellow&#34;/&gt;
	&lt;label for=&#34;yellow&#34;&gt;黄色&lt;/label&gt;
	&lt;input type=&#34;radio&#34; name=&#34;filter&#34; id=&#34;red&#34;/&gt;
	&lt;label for=&#34;red&#34;&gt;红色&lt;/label&gt;
	&lt;input type=&#34;radio&#34; name=&#34;filter&#34; id=&#34;green&#34;/&gt;
	&lt;label for=&#34;green&#34;&gt;绿色&lt;/label&gt;
	&lt;input type=&#34;radio&#34; name=&#34;filter&#34; id=&#34;purple&#34;/&gt;
	&lt;label for=&#34;purple&#34;&gt;紫色&lt;/label&gt;
&lt;/div&gt;
&lt;div class=&#34;fruit-cont&#34;&gt;
	&lt;div c=&#34;r&#34;&gt;🍉&lt;/div&gt;&lt;div c=&#34;y&#34;&gt;🍊&lt;/div&gt;&lt;div c=&#34;g&#34;&gt;🍈&lt;/div&gt;
	&lt;div c=&#34;p&#34;&gt;🍇&lt;/div&gt;&lt;div c=&#34;g&#34;&gt;🥝&lt;/div&gt;&lt;div c=&#34;y&#34;&gt;🍋&lt;/div&gt;
	&lt;div c=&#34;y&#34;&gt;‍🍌&lt;/div&gt;&lt;div c=&#34;y&#34;&gt;🍍&lt;/div&gt;&lt;div c=&#34;y&#34;&gt;🥭&lt;/div&gt;
	&lt;div c=&#34;r&#34;&gt;🍎&lt;/div&gt;&lt;div c=&#34;g&#34;&gt;🍏&lt;/div&gt;&lt;div c=&#34;g&#34;&gt;🍐&lt;/div&gt;
	&lt;div c=&#34;r&#34;&gt;🍑&lt;/div&gt;&lt;div c=&#34;r&#34;&gt;🍒&lt;/div&gt;&lt;div c=&#34;r&#34;&gt;🍓&lt;/div&gt;
	&lt;div c=&#34;p&#34;&gt;🫐&lt;/div&gt;&lt;div c=&#34;r&#34;&gt;‍🍅&lt;/div&gt;&lt;div c=&#34;g&#34;&gt;🫒&lt;/div&gt;
&lt;/div&gt;
&lt;style&gt;
	.filter{display: flex;cursor: pointer;user-select: none;}
	.filter label{
		width: calc(25% - 12px);
		box-sizing: border-box;
		margin: 6px;
		height: 40px;
		line-height: 36px;
		text-align: center;
		border-radius: 8px;
		border: 2px solid;
	}
	.filter input{display: none;}
	.fruit-cont{display: flex;flex-wrap: wrap;}
	.fruit-cont div{
		display: none;
		width: calc(25% - 12px);
		box-sizing: border-box;
		margin: 6px;
		height: 60px;
		line-height: 60px;
		text-align: center;
		font-size: 30px;
		text-shadow: 0 0 6px white;
		border-radius: 8px;
	}
	.filter:has(&gt;#yellow:checked) ~ .fruit-cont div[c=&#34;y&#34;]{display: block}
	.filter:has(&gt;#green:checked) ~ .fruit-cont div[c=&#34;g&#34;]{display: block}
	.filter:has(&gt;#red:checked) ~ .fruit-cont div[c=&#34;r&#34;]{display: block}
	.filter:has(&gt;#purple:checked) ~ .fruit-cont div[c=&#34;p&#34;]{display: block}
	.filter:has(&gt;#all:checked) ~ .fruit-cont div{display: block}
	.fruit-cont div[c=&#34;r&#34;]{background-color: #e74c3c}
	.fruit-cont div[c=&#34;g&#34;]{background-color: #2ecc71}
	.fruit-cont div[c=&#34;p&#34;]{background-color: #9b59b6}
	.fruit-cont div[c=&#34;y&#34;]{background-color: #f39c12 }
	.filter label[for=&#34;red&#34;]{border-color: #e74c3c;color: #e74c3c;}
	.filter label[for=&#34;green&#34;]{border-color: #2ecc71;color: #2ecc71;}
	.filter label[for=&#34;purple&#34;]{border-color: #9b59b6;color: #9b59b6;}
	.filter label[for=&#34;yellow&#34;]{border-color: #f39c12 ;color: #f39c12 ;}
	.filter label[for=&#34;all&#34;]{border-color: black;color: black ;}
	.filter input:checked + label[for=&#34;red&#34;]{background-color: #e74c3c;color: white;}
	.filter input:checked + label[for=&#34;green&#34;]{background-color: #2ecc71;color: white;}
	.filter input:checked + label[for=&#34;purple&#34;]{background-color: #9b59b6;color: white;}
	.filter input:checked + label[for=&#34;yellow&#34;]{background-color: #f39c12 ;color: white;}
	.filter input:checked + label[for=&#34;all&#34;]{background-color: black ;color: white;}
&lt;/style&gt;
&lt;h2 id=&#34;has伪类与属性选择器&#34;&gt;&lt;code&gt;:has()&lt;/code&gt;伪类与属性选择器
&lt;/h2&gt;&lt;p&gt;我们通过下边这个小案例来了解一下这俩选择器&lt;/p&gt;</description>
        </item>
        <item>
        <title>我的简历编辑器上线了</title>
        <link>https://blog.zhoujump.club/p/resume-tool-index/</link>
        <pubDate>Mon, 07 Oct 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/resume-tool-index/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/resume-tool-index/cover.webp" alt="Featured image of post 我的简历编辑器上线了" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/resume-tool-index/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;我的简历编辑器上线了&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;a target=&#34;_blank&#34; href=&#34;https://resume.zhoujump.club/&#34;&gt;
    &lt;div class=&#34;enter-button&#34;&gt;立即进入&lt;/div&gt;
&lt;/a&gt;
&lt;style&gt;
    .enter-button {
        text-align: center;
        background: #0C9371;
        width: 300px;
        color: #fff;
        height: 50px;
        line-height: 50px;
        border-radius: 25px;
        margin: 0 auto;
    }
&lt;/style&gt;</description>
        </item>
        <item>
        <title>纯CSS实现输入框的编辑和保存按钮</title>
        <link>https://blog.zhoujump.club/p/checked_input/</link>
        <pubDate>Sun, 29 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/checked_input/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/checked_input/cover.webp" alt="Featured image of post 纯CSS实现输入框的编辑和保存按钮" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/checked-input/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯CSS实现输入框的编辑和保存按钮&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;p&gt;点击右侧&lt;code&gt;编辑&lt;/code&gt;激活左侧input,点击右侧&lt;code&gt;完成&lt;/code&gt;保存输入框内容&lt;/p&gt;
&lt;div class=&#34;s-box&#34;&gt;
    &lt;input id=&#34;s-edit&#34; type=&#34;checkbox&#34;/&gt;
    &lt;input class=&#34;s-input&#34; value=&#34;点击右侧‘编辑’按钮→&#34;/&gt;
    &lt;label class=&#34;s-label&#34; for=&#34;s-edit&#34;&gt;&lt;/label&gt;
&lt;/div&gt;
&lt;style&gt;
    .s-box {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 12px;
        padding: 10px;
        transition: all .3s;
    }
    .s-box:hover{
        box-shadow: 0 0 10px #ddd;
        transition: all .3s;
    }
    .s-input,.s-input:focus{
        width:calc(100% - 60px);
        font-size: 16px;
        padding: 4px;
        outline: none;
        border: none;
        pointer-events: none;
        border: 1px solid #fff;
        transition: all .3s;
    }
    .s-label{
        width: 40px;
        cursor: pointer;
        float: right;
        text-align: center;
    }
    #s-edit:checked ~ .s-input{
        pointer-events: auto;
        border: 1px solid #ddd;
        border-radius: 4px;
        transition: all .3s;
    }
    #s-edit{display: none;}
    .s-label::after{content:&#34;编辑&#34;;}
    #s-edit:checked ~ .s-label::after{content:&#34;完成&#34;;}
&lt;/style&gt;
&lt;h2 id=&#34;pointer-events&#34;&gt;pointer-events
&lt;/h2&gt;&lt;p&gt;我们都知道可以通过&lt;code&gt;&amp;lt;input disabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;/code&gt;中disabled属性来使输入框不可编辑，但是它作为元素属性需要使用js来修改。那我们纯css环境如何实现呢？
答案是使用&lt;code&gt;pointer-events&lt;/code&gt;属性，它用来定义元素如何响应用户的点击。例如下边这两个例子：&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯CSS实现循环翻牌效果</title>
        <link>https://blog.zhoujump.club/p/index-checked/</link>
        <pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/index-checked/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/index-checked/cover.webp" alt="Featured image of post 纯CSS实现循环翻牌效果" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/index-checked/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯CSS实现循环翻牌效果&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;p&gt;点击卡片就能切换一张，并且整个实现过程并没有用到js。这个样例中除了两张卡片外其实还有两个透明的&lt;code&gt;input&lt;/code&gt;，你点击到的其实是这俩&lt;code&gt;input&lt;/code&gt;，而且这俩&lt;code&gt;input&lt;/code&gt;会在点击后修改自身的&lt;code&gt;z-index&lt;/code&gt;属性，保证你下次点击必定会点击到另外一个。&lt;/p&gt;</description>
        </item>
        <item>
        <title>随时随地，一键召唤看板娘。</title>
        <link>https://blog.zhoujump.club/p/creat-waifu/</link>
        <pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/creat-waifu/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/creat-waifu/cover.webp" alt="Featured image of post 随时随地，一键召唤看板娘。" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/creat-waifu/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;随时随地，一键召唤看板娘。&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;如何使用&#34;&gt;如何使用
&lt;/h2&gt;&lt;p&gt;将下面这个蓝色方块拖拽至收藏夹栏再松开鼠标，浏览器会自动创建一个书签。
&lt;a class=&#34;waifu&#34; href=&#34;javascript:var link = document.createElement(&#39;link&#39;);link.rel = &#39;stylesheet&#39;;link.href = &#39;https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css&#39;;var script = document.createElement(&#39;script&#39;);script.src = &#39;https://fastly.jsdelivr.net/gh/lrplrplrp/bkyl2d@main/loads.js&#39;;document.head.appendChild(link);document.head.appendChild(script);&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯CSS实现评分组件</title>
        <link>https://blog.zhoujump.club/p/input-star/</link>
        <pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/input-star/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/input-star/cover.webp" alt="Featured image of post 纯CSS实现评分组件" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/input-star/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯CSS实现评分组件&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;p&gt;以下是一个纯靠css实现的评分组件，点击星星即可评分，不同的评分将会展示不同的颜色。&lt;/p&gt;</description>
        </item>
        <item>
        <title>纯CSS实现选项选择效果</title>
        <link>https://blog.zhoujump.club/p/checked-css/</link>
        <pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/checked-css/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/checked-css/cover.webp" alt="Featured image of post 纯CSS实现选项选择效果" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/checked-css/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;纯CSS实现选项选择效果&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;先看效果&#34;&gt;先看效果
&lt;/h2&gt;&lt;p&gt;你可以通过点击来切换不同的选项，而这个样例没有使用js而是完全使用css实现的。&lt;/p&gt;</description>
        </item>
        <item>
        <title>如何实现一个宽度随文字变化的输入框</title>
        <link>https://blog.zhoujump.club/p/contenteditable-input/</link>
        <pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/contenteditable-input/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/contenteditable-input/cover.webp" alt="Featured image of post 如何实现一个宽度随文字变化的输入框" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/contenteditable-input/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;如何实现一个宽度随文字变化的输入框&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有些时候我们需要制作宽度随输入的文字变化的输入组件，例如下面这个tag输入框：&lt;/p&gt;</description>
        </item>
        <item>
        <title>为不确定高度的元素添加过渡动画</title>
        <link>https://blog.zhoujump.club/p/grid-transition/</link>
        <pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/grid-transition/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/grid-transition/cover.webp" alt="Featured image of post 为不确定高度的元素添加过渡动画" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/grid-transition/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;为不确定高度的元素添加过渡动画&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有时候我们会遇到这种情况，容器内部由元素撑开无法知道其高度，又需要实现平滑过渡。就像这样：&lt;/p&gt;</description>
        </item>
        <item>
        <title>HUGO，评论！</title>
        <link>https://blog.zhoujump.club/p/hugo-commits/</link>
        <pubDate>Thu, 19 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/hugo-commits/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/hugo-commits/cover.webp" alt="Featured image of post HUGO，评论！" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/hugo-commits/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HUGO，评论！&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;前言：本文继续上文，讲一讲如何为你的博客添加评论系统。
&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/tags/hugo/&#34; &gt;阅读之前的文章&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;部署waline&#34;&gt;部署waline
&lt;/h2&gt;&lt;p&gt;这部分waline官网有详细介绍，我们只需要做到 &lt;strong&gt;Vercel 部署 (服务端)&lt;/strong&gt; 这一步即可。有购买域名的小伙伴可以往下再做一步。完成部署后就能回到本文继续配置啦。
&lt;a class=&#34;link&#34; href=&#34;http://u5a.cn/OdUZ7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;点击前往waline教程&lt;/a&gt;&lt;/p&gt;</description>
        </item>
        <item>
        <title>HUGO，域名！</title>
        <link>https://blog.zhoujump.club/p/hugo-domain/</link>
        <pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/hugo-domain/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/hugo-domain/cover.webp" alt="Featured image of post HUGO，域名！" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/hugo-domain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HUGO，域名！&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;前言：本文继续上文，讲一讲如何购买一个域名，然后将咱的网页绑定在其上。
&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/tags/hugo/&#34; &gt;阅读之前的文章&lt;/a&gt;&lt;/p&gt;</description>
        </item>
        <item>
        <title>HUGO，启动！</title>
        <link>https://blog.zhoujump.club/p/hugo-start/</link>
        <pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/p/hugo-start/</guid>
        <description>&lt;img src="https://blog.zhoujump.club/p/hugo-start/cover.webp" alt="Featured image of post HUGO，启动！" /&gt;&lt;blockquote&gt;
&lt;p&gt;文章在个人网站中发布，原文链接：&lt;a class=&#34;link&#34; href=&#34;https://blog.zhoujump.club/p/hugo-start/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HUGO，启动！&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;前言：本文章将光速教会你如何启动一个hugo项目，并且将其免费托管至gitlab pages以供所有人访问，就像你现在看到的这个网站一样。&lt;/p&gt;</description>
        </item>
        <item>
        <title>归档</title>
        <link>https://blog.zhoujump.club/archives/</link>
        <pubDate>Sun, 06 Mar 2022 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/archives/</guid>
        <description></description>
        </item>
        <item>
        <title>搜索</title>
        <link>https://blog.zhoujump.club/search/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/search/</guid>
        <description></description>
        </item>
        <item>
        <title>友链</title>
        <link>https://blog.zhoujump.club/%E5%8F%8B%E9%93%BE/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.zhoujump.club/%E5%8F%8B%E9%93%BE/</guid>
        <description></description>
        </item>
        
    </channel>
</rss>
