Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

zhangxinxu.com

张鑫旭-鑫空间-鑫生活

Get the latest updates from 张鑫旭-鑫空间-鑫生活 directly as they happen.

Follow now 170 followers

Latest posts

Last updated 5 days ago

JS文本选区变化selectionchange事件实践小记

5 days ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11430 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 2年前有个中台文档产品有个划词评论的功能,那时候还写了篇文章介绍了相关的技术实现,参见:“划词评论与Range开发若干经验分享” 一直运行的好好的。 突然,就在最近,老板提了一嘴,这手机上怎么没法划词评论。 好了,需求就来了。 当时手机上内置的复制、翻译等tips等与划词评论小按钮会有冲突,以及开发成本等原因(台式机模拟touch长按有些麻烦),就没做。 简单研究了下,事件是通用的,就是selectionchange事件。 一、关于selectionchange事件...

这啥?CSS calc-size和interpolate-size,真学不动了

8 days ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11424 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 就算每周学习一个前端新特性,我发现我都来不及学习。 都没有时间钓鱼了,苦啊。 这不,又出了个啥calc-size()函数和interpolate-size属性。 没关系,我还学得动,快扶我起来。 一、非固定尺寸也能动画 calc-size()函数和interpolate-size属性的设计初衷是一致的,就是可以让width、height等尺寸相关的属性即使值是auto,也能有transition过渡动画效果。 最具代表性的就是height:auto的过渡动画实现。...

趁热打铁,SVG feColorMatrix滤镜gogogo!

12 days ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11418 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、趁热打铁gogogo 上一篇我们介绍了Pixi.js中的颜色矩阵变换滤镜,接下来,我们趁热打铁,来一起学习下SVG中的colorMatrix滤镜,使用的是<feColorMatrix>这个元素。 先从语法说起。 支持in, type 和 values(注意有s)这三个属性,其中,in属性的实际用法都是固定的,值都是SourceGraphic,表示应用滤镜的原始资源。...

Pixi.js中ColorMatrixFilter自带滤镜效果一览

22 days ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11393 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、背景 短视频投放为了有更好的流量推荐,就需要避免重复,以免被系统判定为非原创。 这就需要对视频进行去重。 常见的手段就是翻转,剪裁,叠加素材等。 最近就遇到类似需求,思来想去,其实可以借助算法滤镜对视频的每一帧进行重新处理,这个要比使用其他视频画面1%透明度叠加效率高得多。 所以,就去研究了下Pixi.js中ColorMatrixFilter自带的算法滤镜,称为ColorMatrixFilter,就是通过矩阵变换改变画面色彩的滤镜,这个与模糊、马赛克这类滤镜还是有所不同的。 我看了下官方文档,有20多个自带的方法,品类倒是挺多,但是却没有对应的效果展示,纯文本,且描述也很简单。...

Object.is/===、数组at/直接索引、substring/slice的区别

29 days ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11387 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、Object.is和===的区别 Object.is()静态方法可以比较两个对象是否严格相等,在绝大多数情况下,和三等于号===的作用是一样的。 除了下面两种情况: 1. NaN的比较 如果使用等于好比较,则NaN和NaN的返回结果是false: NaN...

Nice! Safari也支持CSS @perporty规则了

about 1 month ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11377 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、姗姗来迟的支持 先看兼容性图表📈: 可以看到,@property规则Chrome在2020年的时候就支持了,而Safari浏览器姗姗来迟,2023年才支持,目前已经进入可以再生产环境使用的阶段(对兼容性要求不是那么严苛的项目)。 @property规则属于CSS Houdini中的一个特性,可以自定义CSS属性的类型,这个特性在现代CSS开发中还是很有用的,最具代表性的例子就是可以让CSS变量支持动画或过渡效果。 二、“变量种子计数器”的升级 在19年的时候,我曾提过使用“变量种子计数器”来颠覆现有的CSS动画实现方式。...

时隔两年,Chrome也支持round等CSS数学函数了

about 2 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11363 鑫空间-鑫生活 本文欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可以联系授权。 一、CSS又更强了一点 好消息,时隔两年,原本仅Safari浏览器支持的mod()/rem()/round()现在Chrome浏览器也支持啦。 mod()函数 CSS mod()函数返回第一个参数除以第二个参数的取模结果,类似于JavaScript余数运算符(%)。 使用示意:...

实用的JS对象分组静态方法Object.groupBy()

2 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11357 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、原生分组方法Object.groupBy() 好消息,所有现代浏览器都已经支持浏览器原生的静态方法Object.groupBy()了,如下图所示,Safari浏览器支持最晚,今年4月份才开始支持。 这就意味着最晚明年,就算不使用Polyfill代码,也能在生产环境使用该方法了。 作用 Object.groupBy()可以让可枚举对象,根据某个键进行自动分组。 例如: const...

好消息,align-content垂直居中也适用普通元素啦

2 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=5474 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、普大喜奔好消息 好消息,实现元素垂直居中对齐终于有了专门的CSS属性,就是之前Flex布局和Grid布局中使用的align-content属性,现在已经可以在普通的block块级元素中使用啦! 案例演示 例如,有如下CSS和HTML代码: <ul> <li>《HTML并不简单》这本书不错</li> <li>感谢正版支持《CSS新世界》</li>...

来了来了,scrollend滚动停止事件也支持了

2 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11347 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 一、这个特性期待已久了 之前处理滚动行为的时候,由于滚动事件的触发太频繁,所有,都会用setTimeout优化处理。 现在,浏览器支持了scrollend事件,就不需要那么麻烦了。 目前Firefox和Chrome浏览器已经原生支持,Safari的话还是需要老代码polyfill下(本文后面会有展示)。 效果体验 只要你不是Safari浏览器(手机不是iPhone),均可以滚动下面这个iframe内嵌容器,体验scrollend效果。 如果仅触摸,但是未发生滚动,scrollend事件是不会发生的。...

搞懂SVG中各种Light相关的光源滤镜

3 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11330 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 SVG中有多个与光源相关的滤镜,看起来有些小复杂,今天就好好学一学,想办法都弄懂了,说不定哪一天就用到了。 一、fePointLight滤镜 顾名思义就是点光源滤镜效果。 和很多其他光源滤镜一样,要想生效,需要用在照明过滤器元件中。 所谓的照明过滤器,在SVG中,其实指的是<feDiffuseLighting> 和 <feSpecularLighting>这两个元素。...

不能落后,好好缕缕CSS滚动动画

3 months ago

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11318 本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。 生命不停,学习不止,CSS滚动动画出来已经有1年了。 Safari浏览器到现在还没有支持,如下图所示: 但是我已经等不及了,很多人都已经开始在生产环境使用这个新特性了,我也不能落后,学起来,不要管Safari了。 然后,滚动动画需要的CSS属性不仅是scroll-timeline、view-timeline,animation-timeline属性也是需要的,这也是CSS新特性,会在本文一同介绍。 好,开始吧。 一、温故而知新 其实滚动动画我很多年前也近似实现过,让我找找……...