欢迎来到第 85 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介
也推荐大家关注一下最后的推荐内容(周刊的主要内容来源渠道)
下面开始本期内容的介绍ღ( ´・ᴗ・` )比心。
基于 Web WASM 实现的在线图片压缩工具(纯前端,无需上传至服务端),支持多种常见图片格式JPEG, PNG, WEBP, AVIF, SVG, GIF。
压缩质量可以媲美 tinypng ,操作界面也非常友好。
支持预览压缩前后效果对比。
整体效果还是很不错滴。
支持一键复制 CSS 代码,比如下面这个。
css
html {
--s: 120px; /* control the size*/
--c1: #e7525b;
--c2: #b3ffc6;
--_g: 80%,var(--c1) 25.4%,#0000 26%;
background:
radial-gradient(at 80% var(--_g)),
radial-gradient(at 20% var(--_g)),
conic-gradient(from -45deg at 50% 41%,var(--c1) 90deg,var(--c2) 0)
calc(var(--s)/2) 0;
background-size: var(--s) var(--s);
}仓库收集了许多 js 语法特色相关的问题究极八股,感兴趣的可以下来尝试一下。
我来摘抄2个有意思的。
专为列表场景设计。
使用非常简单,对原代码极低的侵入性。
html
<script setup lang="ts">
import { useDragAndDrop } from "vue-fluid-dnd";
const { parent } = useDragAndDrop(list);
<script>
<template>
<ul ref="parent">
<li v-for="(element, index) in list" :index="index">
{{ element }}
</li>
</ul>
</template>网站提供各种状态码的 HTTP 响应,可以用来调试各种状态码的响应情况。
利用 SVG 滤镜实现,核心代码如下
html
<style>
data {
font-size: 2.5rem;
font-family: system-ui;
}
.erode {
filter: url(#erode);
}
</style>
<data class="erode">苗条文案</data>
<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0">
<filter id="erode">
<feMorphology operator="erode" radius="1" />
</filter>
</svg>全部代码如下
html
<canvas style=width:99% id=c onclick=setInterval('for(c.width=w=99,++t,i=6e3;i--;c.getContext`2d`.fillRect(i%w,i/w|0,1-d*Z/w+s,1))for(a=i%w/50-1,s=b=1-i/4e3,X=t,Y=Z=d=1;++Z<w&(Y<6-(32<Z&27<X%w&&X/9^Z/8)*8%46||d|(s=(X&Y&Z)%3/Z,a=b=1,d=Z/w));Y-=b)X+=a',t=9)>利用 canvas + 一段算法。
牛逼!当然作者也在文章里揭秘了原理,感兴趣的可以深入研究一下。
篇幅有限,如果你还没看够,可移步后面的推荐渠道,继续游览,历史周刊(<20)移步博客
欢迎来到第 85 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介
也推荐大家关注一下最后的推荐内容(周刊的主要内容来源渠道)
下面开始本期内容的介绍ღ( ´・ᴗ・` )比心。
基于 Web WASM 实现的在线图片压缩工具(纯前端,无需上传至服务端),支持多种常见图片格式JPEG, PNG, WEBP, AVIF, SVG, GIF。
压缩质量可以媲美 tinypng ,操作界面也非常友好。
支持预览压缩前后效果对比。
整体效果还是很不错滴。
支持一键复制 CSS 代码,比如下面这个。
css
html {
--s: 120px; /* control the size*/
--c1: #e7525b;
--c2: #b3ffc6;
--_g: 80%,var(--c1) 25.4%,#0000 26%;
background:
radial-gradient(at 80% var(--_g)),
radial-gradient(at 20% var(--_g)),
conic-gradient(from -45deg at 50% 41%,var(--c1) 90deg,var(--c2) 0)
calc(var(--s)/2) 0;
background-size: var(--s) var(--s);
}仓库收集了许多 js 语法特色相关的问题究极八股,感兴趣的可以下来尝试一下。
我来摘抄2个有意思的。
专为列表场景设计。
使用非常简单,对原代码极低的侵入性。
html
<script setup lang="ts">
import { useDragAndDrop } from "vue-fluid-dnd";
const { parent } = useDragAndDrop(list);
<script>
<template>
<ul ref="parent">
<li v-for="(element, index) in list" :index="index">
{{ element }}
</li>
</ul>
</template>网站提供各种状态码的 HTTP 响应,可以用来调试各种状态码的响应情况。
利用 SVG 滤镜实现,核心代码如下
html
<style>
data {
font-size: 2.5rem;
font-family: system-ui;
}
.erode {
filter: url(#erode);
}
</style>
<data class="erode">苗条文案</data>
<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0">
<filter id="erode">
<feMorphology operator="erode" radius="1" />
</filter>
</svg>全部代码如下
html
<canvas style=width:99% id=c onclick=setInterval('for(c.width=w=99,++t,i=6e3;i--;c.getContext`2d`.fillRect(i%w,i/w|0,1-d*Z/w+s,1))for(a=i%w/50-1,s=b=1-i/4e3,X=t,Y=Z=d=1;++Z<w&(Y<6-(32<Z&27<X%w&&X/9^Z/8)*8%46||d|(s=(X&Y&Z)%3/Z,a=b=1,d=Z/w));Y-=b)X+=a',t=9)>利用 canvas + 一段算法。
牛逼!当然作者也在文章里揭秘了原理,感兴趣的可以深入研究一下。
篇幅有限,如果你还没看够,可移步后面的推荐渠道,继续游览,历史周刊(<20)移步博客