首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

高清ICON SVG解决方案(上) - 腾讯ISUX

,会矢量适配各种不同devicePixelRatio,但是在PC上当图标小于等于16px时,或者复杂度高的图标会出现比较严重锯齿,图标无法展示清晰,特别在chrome下的表现尤为严重。...正因为如此这个技术在推进过程中遇到许多困难,因为在很多场景下图标确实会较小甚至小于16px,而且有些16px的图标如果复杂度较高,iconfont实现出来的icon会经常出现看不清的情况,而且国内PC用户是占最多的...Chrome目前依旧是使用GDI,而FF和IE9+已经是采用了DirectWrite,这就是为什么iconfont在Chrome下锯齿会比其他浏览器严重的原因,可能GDI确实像FF官方说的存在许多缺陷,...简单的说他就是一个可伸缩矢量图形 (Scalable Vector Graphics),在浏览器中采用绘图技术。...上面的demo分别在不同浏览器下的效果,第一行用的是iconfont实现,下面三行都是用的SVG实现的图标,只是调用SVG时的方法不同:第一行是用inline SVG,将SVG直接写在html中来使用,

3.3K40

视差滚动效果实现

视差滚动是一种在网页设计和视频游戏中常见的视觉效果技术,它通过在不同速度上移动页面或屏幕上的多层图像,创造出深度感和动感。...对于较远的层(如背景层),使用 scale() 进行放大,以补偿由于距离产生的视觉缩小效果。 当用户滚动页面时,由于各层位于不同的 Z 轴位置,它们会以不同的速度移动,从而产生视差效果。...如下是在 React 中实现示例,通过监听滚动事件,封装统一的视差组件,来达到多样的动画效果。...这确保了动画更新与浏览器的渲染周期同步,从而产生更流畑的动画效果。...避免丢帧:由于与浏览器的渲染周期同步,使用 requestAnimationFrame 可以减少丢帧现象,特别是在高负荷情况下。

20720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解 RequestAnimationFrame

    在Web应用中,实现动画效果的方法很多,Javascript 中可以通过SetInterval来实现,CSS 3可以使用 Transition 和 Animation 来实现,HTML 5 中Canvas...因此,当你对着电脑屏幕什么也不做的情况下,显示器也会以每秒60次的频率正在不断的更新屏幕上的图像。为什么你感觉不到这个变化?...刷新频率为60Hz的屏幕每16.7ms刷新一次,我们在屏幕每次刷新前,将图像的位置向左移动一个像素,即1px,这样一来,屏幕每次刷出来的图像位置都比前一个要差1px,因此你会看到图像在移动,由于我们人眼的视觉停留效应...刷新频率受屏幕分辨率和屏幕尺寸的影响,因此不同设备的屏幕刷新频率可能会不同,而 setTimeout只能设置一个固定的时间间隔,这个时间不一定和屏幕的刷新时间相同。...,然后再根据不同浏览器的情况进行回退,直到只能使用SetTinterval 的情况。

    1.7K10

    requestAnimationFrame的使用

    在Web应用中,实现动画效果的方法比较多,JavaScript 中可以通过定时器 setTimeout 来实现,css3 可以使用 transition 和 animation 来实现,html5 中的...因此,当你对着电脑屏幕什么也不做的情况下,显示器也会以每秒60次的频率正在不断的更新屏幕上的图像。为什么你感觉不到这个变化?...,当前位置的图像停留在大脑的印象还没消失,紧接着图像又被移到了下一个位置,这样你所看到的效果就是,图像在流畅的移动。...刷新频率受 屏幕分辨率 和 屏幕尺寸 的影响,不同设备的屏幕绘制频率可能会不同,而 setTimeout 只能设置一个固定的时间间隔,这个时间不一定和屏幕的刷新时间相同。...一个绘制间隔内函数执行多次时没有意义的,因为显示器每16.7ms 绘制一次,多次绘制并不会在屏幕上体现出来。 优雅降级 由于 rAF 目前还存在兼容性问题,而且不同的浏览器还需要带不同的前缀。

    1K20

    面试官:你了解过移动端适配吗?

    当修改图像的某区域,实际上是在修改该区域内的像素。对这些像素修改的好与坏将决定最终图片的质量。单位面积内的像素越多,图像的效果就越好。...为什么要知道设备像素比呢?因为这个像素比会产生一个非常经典的问题,1像素边框的问题。...1px边框问题 当我们css里写的1px的时候,由于它是逻辑像素,导致我们的逻辑像素根据这个设备像素比(dpr)去映射到设备上就为2px,或者3px,由于每个设备的屏幕尺寸不一样,就导致每个物理像素渲染出来的大小也不同...(记得上面的知识点吗,设备的像素大小是不固定的),这样如果在尺寸比较大的设备上,1px渲染出来的样子相当的粗矿,这就是经典的一像素边框问题 如何解决 核心思路,就是 在web中,浏览器为我们提供了window.devicePixelRatio...在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的UI, 菜单栏等——即指你正在浏览的文档的那一部分。 那么在移动端如何配置视口呢? 简单的一个meta标签即可!

    1.4K10

    关于移动端适配,你必须要知道的

    导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ......上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。...在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念的意义吗?...在上面的图像中我们可以清晰的看到,打印机是如何使用墨点来打印一张图像。 所以,打印机的 DPI越高,打印图像的精细程度就越高,同时这也会消耗更多的墨点和时间。...而在设备像素比大于 1的屏幕上,我们写的 1px实际上是被多个物理像素渲染,这就会出现 1px在有些屏幕上看起来很粗的现象。

    2.1K10

    关于移动端适配,你必须要知道的

    导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ......上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。...在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念的意义吗?...在上面的图像中我们可以清晰的看到,打印机是如何使用墨点来打印一张图像。 所以,打印机的 DPI越高,打印图像的精细程度就越高,同时这也会消耗更多的墨点和时间。...而在设备像素比大于 1的屏幕上,我们写的 1px实际上是被多个物理像素渲染,这就会出现 1px在有些屏幕上看起来很粗的现象。

    1.9K41

    画布就是一切(一)— 画布编程的基本模式

    在我看来,应该属于渲染的范畴,不属于状态的范畴。为什么这么来理解呢?...index.html,在控制台就能看到坐标输出: PS:实际上在对canvas有不同的缩放、CSS样式的加持下,坐标的计算会更加复杂,本文只是简单的获取鼠标在canvas中的坐标,不做过多的讨论,想要深入了解可以看这篇大佬的文章...在上一节,我们已经实现了这样的效果:鼠标不断在canvas上进行移动,移动的过程中,鼠标在矩形外部移动的时候,控制台会不断的输出文本:mouse in rect: false,而当鼠标一旦进入了矩形内部...简单来讲,requestAnimationFrame(callbackFunc),这个API调用的时候,只是告诉浏览器,我在请求一个操作,这个操作是在动画帧渲染发生的时候进行的,至于什么时候发生的动画帧渲染交由浏览器底层完成...在本例中,这问题凸显的效果看出不出,但是试想如果我们在输入更新的时候,修改了矩形的x或y值,就会发现画布上会有多个矩形图像了(因为上一个位置的矩形已经被“画”在画布上了)。

    21420

    画布就是一切(一)— 画布编程的基本模式

    在我看来,应该属于渲染的范畴,不属于状态的范畴。为什么这么来理解呢?...index.html,在控制台就能看到坐标输出: PS:实际上在对canvas有不同的缩放、CSS样式的加持下,坐标的计算会更加复杂,本文只是简单的获取鼠标在canvas中的坐标,不做过多的讨论,想要深入了解可以看这篇大佬的文章...在上一节,我们已经实现了这样的效果:鼠标不断在canvas上进行移动,移动的过程中,鼠标在矩形外部移动的时候,控制台会不断的输出文本:mouse in rect: false,而当鼠标一旦进入了矩形内部...简单来讲,requestAnimationFrame(callbackFunc),这个API调用的时候,只是告诉浏览器,我在请求一个操作,这个操作是在动画帧渲染发生的时候进行的,至于什么时候发生的动画帧渲染交由浏览器底层完成...在本例中,这问题凸显的效果看出不出,但是试想如果我们在输入更新的时候,修改了矩形的x或y值,就会发现画布上会有多个矩形图像了(因为上一个位置的矩形已经被“画”在画布上了)。

    26510

    画布就是一切(一)— 画布编程的基本模式

    在我看来,应该属于渲染的范畴,不属于状态的范畴。为什么这么来理解呢?...index.html,在控制台就能看到坐标输出: PS:实际上在对canvas有不同的缩放、CSS样式的加持下,坐标的计算会更加复杂,本文只是简单的获取鼠标在canvas中的坐标,不做过多的讨论,想要深入了解可以看这篇大佬的文章...在上一节,我们已经实现了这样的效果:鼠标不断在canvas上进行移动,移动的过程中,鼠标在矩形外部移动的时候,控制台会不断的输出文本:mouse in rect: false,而当鼠标一旦进入了矩形内部...简单来讲,requestAnimationFrame(callbackFunc),这个API调用的时候,只是告诉浏览器,我在请求一个操作,这个操作是在动画帧渲染发生的时候进行的,至于什么时候发生的动画帧渲染交由浏览器底层完成...在本例中,这问题凸显的效果看出不出,但是试想如果我们在输入更新的时候,修改了矩形的x或y值,就会发现画布上会有多个矩形图像了(因为上一个位置的矩形已经被“画”在画布上了)。

    26720

    关于移动端适配,你必须要知道的

    导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ......上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。...在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念的意义吗?...在上面的图像中我们可以清晰的看到,打印机是如何使用墨点来打印一张图像。 所以,打印机的 DPI越高,打印图像的精细程度就越高,同时这也会消耗更多的墨点和时间。...而在设备像素比大于 1的屏幕上,我们写的 1px实际上是被多个物理像素渲染,这就会出现 1px在有些屏幕上看起来很粗的现象。

    2K20

    前端架构师之路02_移动端布局方案

    Rem适配方案使用媒体查询可以根据不同的设备按比例设置页面的字体大小,然后在页面中使用rem单位,可以通过修改html里面的文字大小来改变页面中的元素的大小从而进行整体控制。...小数像素问题,浏览器渲染最小的单位是像素,元素根据屏幕宽度自适应,通过 rem 计算后可能会出现小数像素,浏览器会对这部分小数四舍五入,按照整数渲染。...浏览器在渲染时所做的舍入处理只是应用在元素的尺寸渲染上,其真实占据的空间依旧是原始大小。...会导致:缩放到低于1px的元素时隐时现(解决办法:指定最小转换像素,对于比较小的像素,不转换为 rem 或 vw) 两个同样宽度的元素因为各自周围的元素宽度不同,导致两元素相差1px。...,以利用 @media 规则为主要手段,而自适应则忽略@media 以比例布局为主,目的是适应不同的浏览器窗口大小 移动端图片处理 指定图像宽度时使用相对单位,防止意外溢出视口,如 width: 50%

    8010

    彻底搞懂移动Web开发中的viewport与跨屏适配

    维基百科①的解释为: 在计算机图形学理论中,当将一些对象渲染到图像时,存在两个类似区域的相关概念。(视口和窗口) 视口是一个以特定于渲染设备的坐标表示的区域(通常为矩形)。...视口范围内的图像会以剪切的形式,投影到到世界坐标窗口中,完成图像的可视化展示。 在 Web 浏览器中,视口是整个文档的可见部分。如果文档大于视口,则用户可以通过滚动来移动视口。...白话描述一下: ●计算机把图像渲染到显示器的过程中,会先把图像画在一个逻辑层的画布上,然后从这个画布中框选一部分,将其投影到显示层。 ●这个选框就是视口,显示层就是窗口。...如前面 viewport 概念的解释,css 中同样 px 大小的宽高描述,在不同大小的视口状态下,用户在浏览器窗口中看到的页面大小的效果是不同的。...两倍屏的 1px*1px 对应的是 2*2=4 个物理点; ●浏览器厂商,根据宿主设备的屏幕物理像素密度,设定了一个 dpr,以便相同数量的逻辑像素描述的 UI 界面,在物理世界不同的屏幕上看起来的大小都能差不多

    3.4K20

    移动端布局方案

    Rem适配方案使用媒体查询可以根据不同的设备按比例设置页面的字体大小,然后在页面中使用rem单位,可以通过修改html里面的文字大小来改变页面中的元素的大小从而进行整体控制。...小数像素问题,浏览器渲染最小的单位是像素,元素根据屏幕宽度自适应,通过 rem 计算后可能会出现小数像素,浏览器会对这部分小数四舍五入,按照整数渲染。...浏览器在渲染时所做的舍入处理只是应用在元素的尺寸渲染上,其真实占据的空间依旧是原始大小。...会导致:缩放到低于1px的元素时隐时现(解决办法:指定最小转换像素,对于比较小的像素,不转换为 rem 或 vw) 两个同样宽度的元素因为各自周围的元素宽度不同,导致两元素相差1px。...,以利用 @media 规则为主要手段,而自适应则忽略@media 以比例布局为主,目的是适应不同的浏览器窗口大小 移动端图片处理 指定图像宽度时使用相对单位,防止意外溢出视口,如 width: 50%

    13210

    【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配

    维基百科①的解释为: 在计算机图形学理论中,当将一些对象渲染到图像时,存在两个类似区域的相关概念。(视口和窗口) 视口是一个以特定于渲染设备的坐标表示的区域(通常为矩形)。...视口范围内的图像会以剪切的形式,投影到到世界坐标窗口中,完成图像的可视化展示。 在 Web 浏览器中,视口是整个文档的可见部分。如果文档大于视口,则用户可以通过滚动来移动视口。...白话描述一下: ●计算机把图像渲染到显示器的过程中,会先把图像画在一个逻辑层的画布上,然后从这个画布中框选一部分,将其投影到显示层。 ●这个选框就是视口,显示层就是窗口。...如前面 viewport 概念的解释,css 中同样 px 大小的宽高描述,在不同大小的视口状态下,用户在浏览器窗口中看到的页面大小的效果是不同的。...两倍屏的 1px*1px 对应的是 2*2=4 个物理点; ●浏览器厂商,根据宿主设备的屏幕物理像素密度,设定了一个 dpr,以便相同数量的逻辑像素描述的 UI 界面,在物理世界不同的屏幕上看起来的大小都能差不多

    3.1K30

    前端工程师之移动端布局方案

    Rem适配方案使用媒体查询可以根据不同的设备按比例设置页面的字体大小,然后在页面中使用rem单位,可以通过修改html里面的文字大小来改变页面中的元素的大小从而进行整体控制。...小数像素问题,浏览器渲染最小的单位是像素,元素根据屏幕宽度自适应,通过 rem 计算后可能会出现小数像素,浏览器会对这部分小数四舍五入,按照整数渲染。...浏览器在渲染时所做的舍入处理只是应用在元素的尺寸渲染上,其真实占据的空间依旧是原始大小。...会导致:缩放到低于1px的元素时隐时现(解决办法:指定最小转换像素,对于比较小的像素,不转换为 rem 或 vw) 两个同样宽度的元素因为各自周围的元素宽度不同,导致两元素相差1px。...,以利用 @media 规则为主要手段,而自适应则忽略@media 以比例布局为主,目的是适应不同的浏览器窗口大小 移动端图片处理 指定图像宽度时使用相对单位,防止意外溢出视口,如 width: 50%

    6610

    requestAnimationFrame & 定时器

    so,即使你对着显示器什么都不做,显示器也会以每秒60次的频率正在不断的更新屏幕上的图像。 动画原理 动画的本质是让人眼看到图像被刷新而引起变化的视觉效果是以连贯的、平滑的方式进行过渡的。...举个例子:刷新频率为60Hz的屏幕每16.7ms刷新一次,在屏幕刷新前将图像的位置向左移动1px,这样的话,每次屏幕刷新之后的位置都和原来差1px,因此我们就看到图像在动了。...setTimeout setTimeout是设置一个时间间隔来不断的改变图像的位置,而达到动画效果。但是setTimeout在某低端机上会出现卡顿、抖动的现象。...而requestAnimationFrame则完全不同,当页面处理为未激活的状态下,该页面的屏幕刷新任务也会被系统暂停,因此跟着系统步伐走的requestAnimationFrame也会停止渲染,当页面被激活时...该方法需要传一个回调函数作为参数,该回调函数在浏览器下一次重绘之前执行。

    1.2K10

    移动端自适应的常见手段

    为了在不同尺寸和密度比的设备上表现出一致的视觉效果,使用逻辑像素描述一个相同尺寸的物理单位。在具有高密度比的屏幕下,一个逻辑像素对应多个物理像素。...相关问题:图片或 1px 边框显示模糊 在移动端中,常见图片或者 1px 的边框在一些机型下显示模糊/变粗的问题。基于对像素相关的概念理解,可知 CSS 中的 1px 是指一个单位的逻辑像素。...一个单位的逻辑像素映射到不同像素密度比的设备下,实际对应的物理像素不同。 因此,同样尺寸的图片在高密度比的设备下,由于一个位图像素需要应用到多个物理像素上,所以会比低密度比设备中的视觉效果模糊。...CSS 布局会基于布局视口进行计算。移动设备的浏览器基于虚拟的布局视口去渲染网页,并将对应的渲染结果缩小以便适应设备实际宽度,从而可以完整的展示站点内容且不破坏布局结构。...使用响应式图片 展示图片时,可以在 picture 元素中定义零或多个 source 元素和一个 img 元素,以便为不同的显示/设备场景提供图像的替代版本。

    1.9K00

    .NET跨平台绘图基础库--SkiaSharp

    不仅用于Google Chrome浏览器, Android开放手机平台也采用Skia作为绘图处理,搭配OpenGL/ES与特定的硬体特征,强化显示的效果 自2005年Skia被Google收购后,一直相当神秘低调...SkiaSharp是一个强大跨平台绘图框架,可以用SkiaSharp在WPF、安卓Xamarin.Forms客户端绘图,也可以用于创建PDF绘图,但是由于它不支持网页绘图,所以总觉得很遗憾,因为目前主流的浏览器都是谷歌...在不同的 .NET 平台(如 MAUI、AvaloniaUI 和 Uno)中都提供了高性能的图形渲染能力,但在移动设备上可能需要额外的优化以避免性能问题。...用户界面绘制:在用户界面设计中,SkiaSharp 可以用于绘制复杂的图形和动画效果。例如,可以使用 SkiaSharp 在 WPF 应用程序中实现自绘的弹动小球、粒子花园等特效。...跨平台应用:由于 SkiaSharp 是跨平台的,因此可以在 Windows、Linux、Android、iOS 等多个平台上使用,支持在不同设备上渲染图像和图形。

    7710

    从零开始学 Web 之 CSS3(八)CSS3三个案例

    4、设备独立像素 随着技术发展,设备不断更新,出现了不同PPI的屏幕共存的状态(如iPhone3G/S为163PPI,iPhone4/S为326PPI),像素不再是统一的度量单位,这会造成同样尺寸的图像在不同...但是做为用户是不会关心这些细节的,他们只是希望在不同PPI的设备上看到的图像内容差不多大小,所以这时我们需要一个新的单位,这个新的单位能够保证图像内容在不同的PPI设备看上去大小应该差不多,这就是独立像素...所以,我们如何处理在不同 pt/px 比例上使得显示相同大小的图片呢? 很简单,在美工设计图片的时候,多设计几种尺寸的图片。...5、像素 5.1、物理像素 物理像素指的是屏幕渲染图像的最小单位,属于屏幕的物理属性,不可人为进行改变,其值大小决定了屏幕渲染图像的品质,我们以上所讨论的都指的是物理像素。...二、调试 1、模拟调试 现代主流浏览器均支持移动开发模拟调试,通常按F12可以调起,其使用也比较简单,可以帮我们方便快捷定位问题。

    1.3K10
    领券