锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

canvas基础简单易懂教程(完结,多图)

时间:2023-04-22 22:07:00 2d型位移变送器m12t连接器t型m12连接器zh200重量变送器

Python视频微信订餐小程序课程视频

https://blog.csdn.net/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.csdn.net/m0_56069948/article/details/122285941
目录* Canvas学习
一、 Canvas概述
- 1.1 Hello world
- 1.2 Canvas的像素化
- 1.3 Canvas的动画思想
- 1.4 实现对象思维canvas动画
二、Canvas的绘制功能
- 2.1 绘制矩形
- 2.2 绘制路径
- 2.3 绘制圆弧
- 2.4 炫彩小球
- 2.5 透明度
- 2.6 小球连线
- 2.7 线型
* lineWidth
* lineCap
* lineJoin
* setLineDash
* lineDashOffset
- 2.8 文本
- 2.9 渐变 Gradients
- 2.10 阴影
三、使用图片
四、资源管理器
4.1 获取对象中属性的长度
4.2 实现管理器
五、变形
- 5.1 移动translate
- 5.2 旋转 rotate
- 5.3 缩放 scale
- 5.4 变形 transform
- 5.5 滚动车轮案例
六、合成裁剪
- 6.1 globalCompositeOperation
- 6.2 裁剪路径
- 6.3 刮刮乐案例
七、总结

Canvas学习

canvas 读音 /?k?nv?s/, 即k?n v? s(看我死).

学习的主要目的是绘制网状关系拓扑图形.

推荐文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial

一、 Canvas概述

canvas用于绘制图形.它可用于动画、游戏画面、数据可视化、图片编辑和实时视频处理。

长久以来, web上面的动画都是Flash. 比如动画广告\ 游戏等等, 基本都是Flash 实现的. Flash目前已被禁用, 而且漏洞很多, 重量很大, 需要安装Adobe Flash Player, 而且会卡顿,不流畅等等。.

canvas是HTML5提出的新标签彻底颠覆了Flash主导地位。广告和游戏都可以使用canvas实现。

Canvas 是轻量级画布, 我们使用Canvas进行JS编程,不需要添加额外的组件,性能也很好,不卡住,手机也很流畅。

1.1 Hello world

我们可以在页面上设置一个canvas标签

  |  |  | |  |  不支持当前浏览器版本,请升级浏览器 | |  | canvas> |   

canvas的标签属性只有两个,width和height,表示的是canvas不要使用画布的宽度和高度css用属性设置,画布会失真变形。

标签的innerContent用来提示低版浏览器(IE6、7、8)不能正常使用canvas,高版浏览器看不见canvas标签内的文字。

image-20220401152034984

  |  | // 得到canvas的画布 | |  | const myCanvas:HTMLCanvasElement = document.getElementById("main\_canvas") as HTMLCanvasElement// 返回某种类型HTMLElement | |  |  | |  | // 得到画布的上下文,上下文有两个,2d的上下文和3d的上下文 | |  | // 所有的图像都是通过通过ctx设置属性或方法的和canvas标签没关系 | |  | const ctx = myCanvas.getContext("2d") | |  | if(ctx !== null) { | |  | // 设置颜色 | |  |  ctx.fillStyle = 'green' | |  | // 绘制矩形 | |  |  ctx.fillRect(100, 100, 200, 50)  | |  | } |   

我们通过上面的代码发送它canvas本质上,用代码在浏览器页面上画画,比如上面的代码fillRect总共有四个属性,前两个100,100代表页面上的矩形(x, y), 也就是说,填充起始位置,200代表宽,50代表高是px。

1.2 Canvas的像素化

我们用canvas一旦图形,一旦绘制成功,canvas就像素化他们一样。canvas没有能力从画布上再次得到这个图形,也就是说,我们没有能力修改画布上的内容,这就是canvas较轻的原因,Flash重的原因之一是它可以通过相应的方式使用api得到已经上了画布的内容,然后再画一遍

假如我们想要这个canvas必须按照图形移动:清屏-更新-渲染编程的逻辑。简而言之,重新绘制它

1.3 Canvas的动画思想

用面向对象的思想来创作动画。

canvas上画布的元素是像素化的,不能通过style.left方法进行修改,而且必须要重新绘制。

  |  | // 得到画布 | |  | const myCanvas:HTMLCanvasElement = document.getElementById("main\_canvas") as HTMLCanvasElement | |  |  | |  | // 获取上下文 | |  | const ctx = myCanvas.getContext("2d") | |  |  | |  | if(ctx !== null) { | |  | // 设置颜色 | |  |  ctx.fillStyle = "blue" | |  | // 初始信号量 | |  | let left:number = -200 | |  | // 动画过程 | |  | setInterval(() => { | |  | // 清除画布,0、0代表从哪里开始,600、600代表宽度和高度 | |  |  ctx.clearRect(0,0,600,600) | |  | // 更新信号量 | |  |  left   | |  | // 若已走出画布,更新信号量为初始位置 | |  | if(left > 600) { | |  |  left = -200 | |  |  } | |  |  ctx.fillRect(left, 100, 200, 200) | |  |  },10) | |  | } |   

事实上,动画的生成是相关静态图片的连续播放,这是动画的过程。我们称每次绘制的静态文字为一帧,时间间隔(定时器间隔)是指帧间隔。

1.4 实现对象思维canvas动画

因为canvas不能得到已经上屏的对象,所以要保持对象的状态。canvas动画很重,我们都用面向对象来编程,因为我们可以用面向对象来维持它canvas所需的属性和状态;

  |  | // 得到画布 | |  | const myCanvas:HTMLCanvasElement = document.getElementById("main\_canvas") as HTMLCanvasElement | |  |  | |  | // 获取上下文 | |  | const ctx = myCanvas.getContext("2d") | |  |  | |  | class Rect { | |  | // 维护状态 | |  | constructor( | |  | public x: number, | |  | public y: number,  | |  | public w: number,  | |  | public h: number,  | |  | public color: string | |  |  ) {  | |  |  } | |  | // 更新的方法 | |  | update() { | |  | this.x   | |  | if(this.x > 600) { | |  | this.x = -200 | |  |  } | |  |  } | |  | // 渲染 | |  | render(ctx: CanvasRenderingContext2D) { | |  | // 设置颜色 | |  |  ctx.fillStyle = this.color | |  | // 渲染 | |  |  ctx.fillRect(this.x, this.y, this.w, thi.h) |
|  |  } |
|  | } |
|  |  |
|  | // 实例化 |
|  | let myRect1: Rect = new Rect(-100, 200, 100, 100, 'purple') |
|  | let myRect2: Rect = new Rect(-100, 400, 100, 100, 'pink') |
|  |  |
|  | // 动画过程 |
|  |  |
|  | // 更新的办法 |
|  | setInterval(() => { |
|  | // 清除画布,0,0代表从什么位置开始,600,600代表清除的宽度和高度 |
|  | if(ctx !== null) { |
|  | // 清屏 |
|  |  ctx.clearRect(0,0,600,600) |
|  | // 更新方法 |
|  |  myRect1.update() |
|  |  myRect2.update() |
|  | // 渲染方法 |
|  |  myRect1.render(ctx) |
|  |  myRect2.render(ctx) |
|  |  } |
|  | },10) |


动画过程在主定时器重,每一帧都会调用实例的更新和渲染方法。

二、Canvas的绘制功能

2.1 绘制矩形

填充一个矩形:



|  | if(ctx !== null) { |
|  | // 设置颜色 |
|  |  ctx.fillStyle = 'green' |
|  | // 填充矩形 |
|  |  ctx.fillRect(100, 100, 300, 50) |
|  | } |


参数含义:分别代表填充坐标x、填充坐标y、矩形的高度和宽度。

绘制矩形边框,和填充不同的是绘制使用的是strokeRect, 和strokeStyle实现的



|  | if (ctx !== null) { |
|  | // 设置颜色 |
|  |  ctx.strokeStyle = 'red' |
|  | // 绘制矩形 |
|  |  ctx.strokeRect(300, 100, 100, 100) |
|  | } |


参数含义:分别代表绘制坐标x、绘制坐标y、矩形的高度和宽度。

清除画布,使用clearRect



|  | // 擦除画布内容 |
|  | btn3.onclick = () => { |
|  | if (ctx !== null) { |
|  |  ctx.clearRect(0, 0, 600, 600) |
|  |  } |
|  | } |


参数含义:分别代表擦除坐标x、擦除坐标y、擦除的高度和擦除的宽度。

2.2 绘制路径

绘制路径的作用是为了设置一个不规则的多边形状态

路径都是闭合的,使用路径进行绘制的时候需要既定的步骤:

  1. 需要设置路径的起点
  2. 使用绘制命令画出路径
  3. 封闭路径
  4. 填充或者绘制已经封闭路径的形状


|  | // 创建一个路径 |
|  | ctx.beginPath() |
|  | // 1. 移动绘制点 |
|  | ctx.moveTo(100, 100) |
|  | // 2. 描述行进路径 |
|  | ctx.lineTo(200, 200) |
|  | ctx.lineTo(400, 180) |
|  | ctx.lineTo(380, 50) |
|  | // 3. 封闭路径 |
|  | ctx.closePath(); |
|  |  |
|  | // 4. 绘制这个不规则的图形 |
|  | ctx.strokeStyle = 'red' |
|  | ctx.stroke() |
|  | ctx.fillStyle = 'orange' |
|  | ctx.fill() |


总结我们要绘制一个图形,要按照顺序

  1. 开始路径ctx.beginPath()
  2. 移动绘制点ctx.moveTo(x, y)
  3. 描述绘制路径ctx.lineTo(x, y)
  4. 多次描述绘制路径ctx.lineTo(x, y)
  5. 闭合路径ctx.closePath()
  6. 描边ctx.stroke()
  7. 填充ctx.fill()

此时我们发现之前我们在学习绘制矩形的时候使用的是fillRectstrokeRect,但是实际上fillstroke也是具有绘制填充功能的

stroke(): 通过线条来绘制图形轮廓。

fill(): 通过填充路径的内容区域生成实心的图形。

我们在绘制路径的时候选择不关闭路径(closePath),这个时候会实现自封闭现象(只针对fill,stroke不生效)

2.3 绘制圆弧

arc(x, y, radius, startAngle, endAngle, anticlockwise)

画一个以(x, y)为圆心的以radius为半径的圆弧(圆), 从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针false, true为逆时针)来生成。



|  | // 创建一个路径 |
|  | ctx.beginPath() |
|  | // 移动绘制点 |
|  | // ctx.arc(200, 200, 100, 0, 2 * Math.PI, false) |
|  | ctx.arc(200, 200, 100, 0, 2 * 3.14, false) |
|  |  |
|  | ctx.stroke() |


圆弧也是绘制路径的一种,也需要beginPath和stroke.

参数的含义:200, 200代表的是起始x,y坐标,100代表的是圆心半径,0和1代表的是开始和结束位置,单位如果是数字,代表的是一个圆弧的弧度(一个圆的弧度是Math.PI * 2, 约等于7个弧度),所以在顺时针的情况下,如果如果两个参数的差为7,则代表绘制一个圆。

2.4 炫彩小球



|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById("main\_canvas") as HTMLCanvasElement |
|  |  |
|  | // 获取上下文 |
|  | const ctx = myCanvas.getContext("2d") |
|  |  |
|  | class Ball { |
|  | color: string // 小球的颜色 |
|  | r: number // 小球的半径 |
|  | dx: number // 小球在x轴的运动速度/帧 |
|  | dy: number // 小球在y轴的运动速度/帧 |
|  | constructor(public x: number, public y: number) { |
|  | // 设置随机颜色 |
|  | this.color = this.getRandomColor() |
|  | // 设置随机半径[1, 101) |
|  | this.r = Math.floor(Math.random() * 100 + 1) |
|  | // 设置x轴, y轴的运动速度(-5, 5) |
|  | this.dx = Math.floor(Math.random() * 10) - 5 |
|  | this.dy = Math.floor(Math.random() * 10) - 5 |
|  |  } |
|  | // 随机颜色,最后返回的是类似'#3fe432' |
|  | getRandomColor(): string { |
|  | let allType = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f" |
|  | let allTypeArr = allType.split(',') |
|  | let color = '#' |
|  | for (let i = 0; i < 6; i++) { |
|  | let random = Math.floor(Math.random() * allTypeArr.length) |
|  |  color += allTypeArr[random] |
|  |  } |
|  | return color |
|  |  } |
|  |  |
|  | // 渲染小球 |
|  | render(): void { |
|  | if(ctx !== null) { |
|  |  ctx.beginPath() |
|  |  ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false) |
|  |  ctx.fillStyle=this.color |
|  |  ctx.fill() |
|  |  } |
|  |  } |
|  |  |
|  | // 更新小球 |
|  | update(): void { |
|  | // 小球的运动 |
|  | this.x += this.dx |
|  | this.y += this.dy |
|  | this.r -= 0.5 |
|  | // 如果小球的半径小于0了,从数组中删除 |
|  | if(this.r <= 0) { |
|  | this.remove() |
|  |  } |
|  |  } |
|  |  |
|  | // 移除小球 |
|  | remove(): void { |
|  | for(let i = 0; i < ballArr.length; i++) { |
|  | if(ballArr[i] === this) { |
|  |  ballArr.splice(i, 1) |
|  |  } |
|  |  } |
|  |  } |
|  | } |
|  | // 维护小球的数组 |
|  | let ballArr: Ball[] = [] |
|  |  |
|  | // canvas设置鼠标监听 |
|  | myCanvas.addEventListener("mousemove", (event)=> { |
|  |  ballArr.push(new Ball(event.offsetX, event.offsetY)) |
|  | }) |
|  |  |
|  |  |
|  | // 定时器进行动画渲染和更新 |
|  | setInterval(function() { |
|  | // 动画的逻辑,清屏-更新-渲染 |
|  | if(ctx !== null) { |
|  |  ctx.clearRect(0, 0, myCanvas.width, myCanvas.height) |
|  |  } |
|  | for(let i = 0; i < ballArr.length; i++) { |
|  | // 小球的更新和渲染 |
|  |  ballArr[i].update() |
|  | if(ballArr[i]) { |
|  |  ballArr[i].render() |
|  |  } |
|  |  |
|  |  } |
|  | // 60 帧 |
|  | }, 1000 / 60) |


2.5 透明度

透明度的值是0到1之间: (1是完全不透明,0是完全透明)



|  | ctx.globalAlpha = 1 |


2.6 小球连线



|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById("mycanvas") as HTMLCanvasElement |
|  |  |
|  | // 获取上下文 |
|  | const ctx = myCanvas.getContext("2d") |
|  |  |
|  | // 设置画布的尺寸 |
|  | myCanvas.width = document.documentElement.clientWidth - 30 |
|  | myCanvas.height = document.documentElement.clientHeight - 30 |
|  |  |
|  | class Ball { |
|  | x: number = Math.floor(Math.random() * myCanvas.width) |
|  | y: number = Math.floor(Math.random() * myCanvas.height) |
|  | r: number = 10 |
|  | color: string = 'gray' |
|  | dx: number = Math.floor(Math.random() * 10) - 5 |
|  | dy: number = Math.floor(Math.random() * 10) - 5 |
|  | constructor() { |
|  |  ballArr.push(this) |
|  |  } |
|  |  |
|  | // 小球的渲染 |
|  | render() { |
|  | if(ctx !== null) { |
|  |  ctx.beginPath() |
|  | // 透明度 |
|  |  ctx.globalAlpha = 1 |
|  | // 画小球 |
|  |  ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false) |
|  |  ctx.fillStyle = this.color |
|  |  ctx.fill() |
|  |  } |
|  |  } |
|  | // 小球的更新 |
|  | update() { |
|  | // 更新x |
|  | this.x += this.dx |
|  | // 纠正x |
|  | if(this.x <= this.r) { |
|  | this.x = this.r |
|  |  } else if ( this.x >= myCanvas.width - this.r) { |
|  | this.x = myCanvas.width - this.r |
|  |  } |
|  | // 更新y |
|  | this.y += this.dy |
|  | // 纠正y |
|  | if(this.y <= this.r) { |
|  | this.y = this.r |
|  |  } else if ( this.y >= myCanvas.height - this.r) { |
|  | this.y = myCanvas.height - this.r |
|  |  } |
|  | // 碰壁返回 |
|  | if(this.x + this.r >= myCanvas.width || this.x - this.r <= 0) { |
|  | this.dx *= -1 |
|  |  } |
|  | if(this.y + this.r >= myCanvas.height || this.y - this.r <= 0) { |
|  | this.dy *= -1 |
|  |  } |
|  |  } |
|  |  |
|  | } |
|  |  |
|  | // 小球数组 |
|  | let ballArr: Ball[] = [] |
|  |  |
|  | // 创建20个小球 |
|  | for(let i = 0; i < 20; i++) { |
|  | new Ball() |
|  | } |
|  |  |
|  | // 定时器动画 |
|  | setInterval(() => { |
|  | // 清除画布 |
|  | if(ctx !== null) { |
|  |  ctx.clearRect(0, 0, myCanvas.width, myCanvas.height) |
|  |  } |
|  | // 小球渲染和更新 |
|  | for(let i = 0; i < ballArr.length; i++) { |
|  |  ballArr[i].render() |
|  |  ballArr[i].update() |
|  |  } |
|  | // 画线的逻辑 |
|  | if(ctx !== null) { |
|  | for(let i = 0; i < ballArr.length; i++) { |
|  | for(let j = i + 1; j < ballArr.length; j++) { |
|  | let distance = Math.sqrt(Math.pow((ballArr[i].x - ballArr[j].x), 2) + Math.pow((ballArr[i].y -ballArr[j].y), 2)) |
|  | if( distance <= 150) { |
|  |  ctx.strokeStyle = '#000' |
|  |  ctx.beginPath() |
|  | // 线的透明度,根据当前已经连线的小球的距离进行线的透明度设置 |
|  | // 距离越近透明度越大,距离越远透明度越小 |
|  |  ctx.globalAlpha = 1 - distance / 150 |
|  |  ctx.moveTo(ballArr[i].x, ballArr[i].y) |
|  |  ctx.lineTo(ballArr[j].x, ballArr[j].y) |
|  |  ctx.closePath() |
|  |  ctx.stroke() |
|  |  } |
|  |  } |
|  |  } |
|  |  } |
|  | }, 1000/60) |


2.7 线型

lineWidth

我们可以利用lineWidth设置线的粗细,属性值为number型,默认为1,没有单位



|  | ctx.lineWidth = 1.0 |


lineCap

我们可以使用lineCap指定如何绘制每一条线段末端的属性:"butt" | "round" | "square", 其中butt代表线段末端以方形结束,round表示线段末端以圆形结束,square线段末端以方形结束,但是增加了一个宽度和线段相同,高度是线段厚度一半的矩形区域,默认是butt



|  | ctx.lineCap = "round"; |


该图是三种lineCapd的类型,从左到右依次为buttroundsquare

lineJoin

我们可以使用lineJoin来设置设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性(长度为0的变形部分,其指定的末端和控制点在同一位置,会被忽略):"bevel" | "round" | "miter"



|  | ctx.lineJoin = "bevel"; |


  • round表示通过填充一个额外的,圆心在相连部分末端的扇形,绘制拐角的形状。 圆角的半径是线段的宽度。
  • bevel表示在相连部分的末端填充一个额外的以三角形为底的区域, 每个部分都有各自独立的矩形拐角。
  • mitter表示通过延伸相连部分的外边缘,使其相交于一点,形成一个额外的菱形区域。

setLineDash

我们可以使用setLineDash方法在填充线时使用虚线模式。



|  | ctx.setLineDash(segments); |


  • segments是一个Array数组。一组描述交替绘制线段和间距(坐标空间单位)长度的数字。 如果数组元素的数量是奇数, 数组的元素会被复制并重复。例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。数组内部是虚线的交替状态


|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById("mycanvas") as HTMLCanvasElement |
|  |  |
|  | // 获取上下文 |
|  | const ctx = myCanvas.getContext("2d") |
|  |  |
|  | // 画布的尺寸 |
|  | myCanvas.width = document.documentElement.clientWidth - 30 |
|  | myCanvas.height = document.documentElement.clientHeight - 30 |
|  |  |
|  | if(ctx !== null) { |
|  |  ctx.setLineDash([15, 15]); |
|  |  ctx.strokeRect(50,50, 90, 90) |
|  |  ctx.setLineDash([15,10,2,10]) |
|  |  ctx.strokeRect(200,50, 90, 90) |
|  | } |


lineDashOffset

我们可以使用lineDashOffset设置虚线偏移量的属性。设置的是起始偏移量,使线向左移动value



|  | ctx.lineDashOffset = value; |


  • value偏移量是float精度的数字。 初始值为 0.0

2.8 文本

我们可以在画布上绘制文字:



|  | ctx.font = "30px 微软雅黑" // 空格前为文字大小,空格后为字体类型 |
|  | // 第一个参数为文字内容,第二和第三个参数为文字绘制坐标, |
|  | // 第四个参数是可选参数,代表文字的最大宽度,如果字体宽度超过该值则压缩字体宽度 |
|  | ctx.fillText("你好,世界!", 100, 100)  |


我们可以使用textAlign来设置文本的对齐选项。可选的值包括:start, end, left, right or center。默认值是 start。该对齐是基于fillText方法的x的值。



|  | ctx.textAlign = "left" || "right" || "center" || "start" || "end"; |


  • left : 文本左对齐。
  • right: 文本右对齐。
  • center: 文本居中对齐。
  • start: 文本对齐界线开始的地方 (左对齐指本地从左向右,右对齐指本地从右向左)。
  • end: 文本对齐界线结束的地方 (左对齐指本地从左向右,右对齐指本地从右向左)。

2.9 渐变 Gradients

提供两种渐变方式,一种是线性渐变,一种是径向渐变。

  • 线性渐变:createLinearGradient 方法接受 4 个参数,表示图形渐变线的起点 (x1,y1) 与终点 (x2,y2),渐变将沿着这条线向两边渐变。


|  | ctx.createLinearGradient(x1, y1, x2, y2) |


addColorStop内部接收两个参数,第一个参数是当前渐变的位置(0~1之间的小数),第二个参数是颜色。



|  | let liner: CanvasGradient = ctx.createLinearGradient(0, 0, 100, 100) |
|  | liner.addColorStop(0, 'red') |
|  | liner.addColorStop(.5, 'blue') |
|  | liner.addColorStop(.8, 'yellow') |
|  | liner.addColorStop(1, 'green') |
|  | ctx.fillStyle = liner |
|  | ctx.fillRect(10, 10, 100,100) |


径向渐变:createRadialGradient方法接受 6 个参数,前三个定义一个以 (x1,y1) 为原点,半径为 r1 的开始圆形,后三个参数则定义另一个以 (x2,y2) 为原点,半径为 r2 的结束圆形。



|  | let radial: CanvasGradient = ctx.createRadialGradient(100, 100, 0, 100, 100, 100) |
|  | radial.addColorStop(0, 'red') |
|  | radial.addColorStop(1, 'purple') |
|  | ctx.fillStyle = radial |
|  | ctx.arc(100, 100, 100, 0, Math.PI *2, false) |
|  | ctx.fill( |


2.10 阴影

我们可以在画布中设置画布的阴影的状态:

  • shadowOffsetX: shadowOffsetXshadowOffsetY 用来设定阴影在 X 和 Y 轴的延伸距离,它们是不受变换矩阵所影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认都为 0
  • shadowOffsetY: shadowOffsetXshadowOffsetY 用来设定阴影在 X 和 Y 轴的延伸距离,它们是不受变换矩阵所影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认都为 0
  • shadowBlur: shadowBlur 用于设定阴影的模糊程度,其数值并不跟像素数量挂钩,也不受变换矩阵的影响,默认为 0
  • shadowColor: shadowColor 是标准的 CSS 颜色值,用于设定阴影颜色效果,默认是全透明的黑色。


|  | ctx.shadowOffsetX = 1 // 阴影左右偏离的距离 |
|  | ctx.shadowOffsetY = 1 // 阴影上下偏离的距离 |
|  | ctx.shadowBlur = 1 // 模糊状态 |
|  | ctx.shadowColor = 'green' // 阴影颜色 |
|  | ctx.font ='30px 宋体' |
|  | ctx.fillText('你好,世界!', 100, 100) |


三、使用图片

canvs中使用drawImage来绘制图片,主要是把外部的图片导入进来,绘制到画布上。

图片的渲染过程:



|  | // 导入图片 |
|  | if(ctx !== null) { |
|  | // 第一步是创建一个image元素 |
|  | let image:HTMLImageElement = new Image() |
|  | // 用src设置图片的地址 |
|  |  image.src = "image/test1.png" |
|  | // 必须要在onload函数内绘制图片,否则不会渲染 |
|  |  image.onload = function() { |
|  |  ctx.drawImage(image, 100, 100) |
|  |  } |
|  | } |


如果我们在drawImage里设置的参数一共是两个(不包含第一个image参数),表示的是图片的加载位置。



|  | ctx.drawImage(image, 100, 100) |


如果drawImage有四个参数,分别表示图片的绘制位置和图片的宽高。(注意,此时图像会被拉伸)



|  | ctx.drawImage(image, 100, 100, 50, 50) |


还可以使用八个参数的drawImage, 前四个参数指的是你在图片中设置切片的宽度和高度,以及切片的位置,后四个参数指的是切片在画布上的位置和切片宽度高度



|  | // ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight); |
|  | ctx.drawImage(image, 100, 300, 200, 200) |
|  | ctx.drawImage(image, 100, 100, 200, 200, 100, 100, 200, 200) |


  • sx: 需要绘制到目标上下文中的,image的矩形(裁剪)选择框的左上角 X 轴坐标。
  • sy: 需要绘制到目标上下文中的,image的矩形(裁剪)选择框的左上角 Y 轴坐标。
  • sWidth: 需要绘制到目标上下文中的,image的矩形(裁剪)选择框的宽度。如果不说明,整个矩形(裁剪)从坐标的sxsy开始,到image的右下角结束。
  • sHeight: 需要绘制到目标上下文中的,image的矩形(裁剪)选择框的高度。
  • dx: image的左上角在目标canvas上 X 轴坐标。
  • dy: image的左上角在目标canvas上 Y 轴坐标。
  • dWidth: image在目标canvas上绘制的宽度。 允许对绘制的image进行缩放。 如果不说明, 在绘制时image宽度不会缩放。
  • dHeight: image在目标canvas上绘制的高度。 允许对绘制的image进行缩放。 如果不说明, 在绘制时image高度不会缩放。

四、资源管理器

我们在开发游戏的时候,有一些静态资源是需要请求回来的,否则如果直接开始,某些静态资源没有,会报错,或者空白,比如我们的游戏被禁锢,如果没有请求回来就直接开始,页面会有空白现象。

资源管理器就是当游戏需要资源全部加载完毕的时候,再开始游戏

我们现在主要是图片的资源,所以我们要在canvas渲染过程中进行图片的资源加载。

4.1 获取对象中属性的长度

有下面一个JSON(对象),此时我们想获取当前这个JSON属性数量



|  | this.imgURL = { |
|  | 'fengjing1':'./image/下载1.jpg', |
|  | 'fengjing2':'./image/下载2.jpg', |
|  | 'fengjing3':'./image/下载3.jpg', |
|  | 'fengjing4':'./image/下载4.jpg', |
|  | 'fengjing5':'./image/下载5.jpg', |
|  | } |


此时我们使用this.imgURL.length是得不到的,因为当前的this.imgURL.length指的是获取imgURL对象的length属性,而不是获取当前对象的属性个数,会返回undefined

正确答案是使用Object.keys()来获取当前的属性key列表,然后通过这个列表获取长度。



|  | Object.keys(this.imgURL).length |


4.2 管理器的实现



|  | interface StringOrImage { |
|  | // 定义了一个接口,该接口要求对象的属性是string或者是HTMLImageElement类型 |
|  |  [index: string]: string | HTMLImageElement |
|  | } |
|  |  |
|  | class Game { |
|  | dom: HTMLCanvasElement |
|  | ctx: CanvasRenderingContext2D | null |
|  | imgURL: StringOrImage |
|  | constructor() { |
|  | // 得到画布 |
|  | this.dom = document.getElementById("mycanvas") as HTMLCanvasElement |
|  | // 获取上下文 |
|  | this.ctx = this.dom.getContext("2d") |
|  | // 在属性中保存需要的图片地址 |
|  | this.imgURL = { |
|  | // 'fengjing1':'./image/下载1.jpg', |
|  | // 'fengjing2':'./image/下载2.jpg', |
|  | // 'fengjing3':'./image/下载3.jpg', |
|  | // 'fengjing4':'./image/下载4.jpg', |
|  | // 'fengjing5':'./image/下载5.jpg', |
|  | 'fengjing1':'https://gimg2.baidu.com/image\_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F4k%2Fs%2F02%2F2109242332225H9-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651933471&t=34b40d339ce3bc4177afb393e7785575', |
|  | 'fengjing2':'https://gimg2.baidu.com/image\_search/src=http%3A%2F%2Ffile02.16sucai.com%2Fd%2Ffile%2F2014%2F0827%2Fc0c92bd51bb72e6d12d5b877dce338e8.jpg&refer=http%3A%2F%2Ffile02.16sucai.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651933483&t=453f28e751e0d54d70a2e3393e57b423', |
|  | 'fengjing3':'https://gimg2.baidu.com/image\_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F1113%2F032120114622%2F200321114622-4-1200.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651933493&t=e9017fa69deb525312e214d2583a76d4', |
|  | 'fengjing4':'https://pic.rmb.bdstatic.com/1530971282b420d77bdfb6444d854f952fe31f0d1e.jpeg', |
|  | 'fengjing5':'https://gimg2.baidu.com/image\_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2Ftp01%2F1ZZQ214233446-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651933521&t=2cc050574824ec2761b539ab3a697522', |
|  |  } |
|  | // 获取资源图片的总数 |
|  | let imgCount = Object.keys(this.imgURL).length |
|  | // 计数器,记录的是加载完毕的数量 |
|  | let count = 0 |
|  | // 遍历imgURL对象获取每一个路径地址 |
|  | for(let key in this.imgURL) { |
|  | // 备份每一张图片的地址 |
|  | let src: string = this.imgURL[key] as string |
|  | // 创建一个图片 |
|  | this.imgURL[key] = new Image(); |
|  |  |
|  | // 判断图片是否加载完成,如果完成了,记数,如果加载完毕的数量和总数量相同了,则说明资源加载完毕 |
|  | // 第一种方法,将值提取出去做类型缩小 |
|  | let value = this.imgURL[key] |
|  | // 类型缩小成HTMLImageElement类型 |
|  | if(typeof value !== 'string') { |
|  |  value.src = src |
|  |  value.onload = () => { |
|  | // 增加计数器 |
|  |  count++ |
|  | if(this.ctx !== null) { |
|  | // 清屏 |
|  | this.ctx.clearRect(0, 0, 600, 600) |
|  | this.ctx.font = '16px Arial' |
|  | this.ctx.fillText("图片已经加载:" + count +" / " + imgCount, 50, 50) |
|  | // 判断图片是否加载完毕,如果加载完毕了再开始显示 |
|  | if(count === imgCount) { |
|  | this.start() |
|  |  } |
|  |  } |
|  |  }  |
|  |  } |
|  |  |
|  | // 第二种方法,使用as直接断言成HTMLImageElement |
|  | //(this.imgURL[key] as HTMLImageElement).src = src |
|  |  |
|  |  } |
|  |  } |
|  | start() { |
|  | if(this.ctx !== null) { |
|  | // 清屏 |
|  | this.ctx.clearRect(0, 0, 600, 600) |
|  | let startX = 0 |
|  | let startY = 0 |
|  | for(let key in this.imgURL) { |
|  | this.ctx.drawImage(this.imgURL[key] as HTMLImageElement, startX, startY, 100, 100) |
|  |  startX += 100 |
|  |  startY += 100 |
|  |  } |
|  |  } |
|  |  } |
|  | } |
|  |  |
|  | new Game() |


五、变形

canvas是可以进行变形的,但是变形的不是元素,而是ctx,ctx就是整个画布的渲染区域,整个画布在变形,我们需要在画布变形前进行保存和恢复:

  • save():保存画布(canvas)的所有状态。
  • restore():save 和 restore 方法是用来保存和恢复 canvas 状态的,都没有参数。Canvas 的状态就是当前画面应用的所有样式和变形的一个快照。

Canvas状态存储在栈中,每当save()方法被调用后,当前的状态就被推送到栈中保存。一个绘画状态包括:

  • 当前应用的变形(即移动,旋转和缩放,见下)
  • 以及下面这些属性:strokeStyle, fillStyle, globalAlpha, lineWidth, lineCap, lineJoin, miterLimit, lineDashOffset, shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor, globalCompositeOperation, font, textAlign, textBaseline, direction, imageSmoothingEnabled
  • 当前的裁切路径(clipping path),会在下一节介绍

你可以调用任意多次 save方法。每一次调用 restore 方法,上一个保存的状态就从栈中弹出,所有设定都恢复。

以下的例子可以很好的印证这两个的用法:



|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  |  ctx.fillRect(0, 0, 150, 150); // 使用默认设置绘制一个矩形 |
|  |  ctx.save(); // 保存默认状态 |
|  |  |
|  |  ctx.fillStyle = '#09F' // 在原有配置基础上对颜色做改变 |
|  |  ctx.fillRect(15, 15, 120, 120); // 使用新的设置绘制一个矩形 |
|  |  |
|  |  ctx.save(); // 保存当前状态 |
|  |  ctx.fillStyle = '#FFF' // 再次改变颜色配置 |
|  |  ctx.globalAlpha = 0.5; |
|  |  ctx.fillRect(30, 30, 90, 90); // 使用新的配置绘制一个矩形 |
|  |  |
|  |  ctx.restore(); // 重新加载之前的颜色状态 |
|  |  ctx.fillRect(45, 45, 60, 60); // 使用上一次的配置绘制一个矩形 |
|  |  |
|  |  ctx.restore(); // 加载默认颜色配置 |
|  |  ctx.fillRect(60, 60, 30, 30); // 使用加载的配置绘制一个矩形 |
|  | } |


5.1 移动translate

translate(x, y): translate 方法接受两个参数。x 是左右偏移量,y 是上下偏移量。

在做变形之前先保存状态是一个良好的习惯。大多数情况下,调用 restore 方法比手动恢复原先的状态要简单得多。又,如果你是在一个循环中做位移但没有保存和恢复 canvas 的状态,很可能到最后会发现怎么有些东西不见了,那是因为它很可能已经超出 canvas 范围以外了。

我们知道了变形实际上就是将整个画布进行的变形,所以如果一旦我们的变形操作变多了,画布将变得不可控。

所以如果我们使用到变形,一定记住下面的规律:变形之前要先备份,将世界和平的状态进行备份,然后再变形,变形完毕后再恢复到世界和平的样子,不要影响下一次的操作。



|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  | // 保存 |
|  |  ctx.save() |
|  |  ctx.translate(50, 50) |
|  |  ctx.fillRect(0, 0, 120, 120) |
|  | // 恢复 |
|  |  ctx.restore() |
|  | // 渲染位置是没有存档之前的位置 |
|  |  ctx.fillRect(120, 300, 120, 120) |
|  | } |


5.2 旋转 rotate

rotate(angle)这个方法只接受一个参数:旋转的角度(angle),它是顺时针方向的,以弧度为单位的值。

旋转的中心点始终是 canvas 的原点,如果要改变它,我们需要用到 translate 方法。

5.3 缩放 scale

scale(x, y): scale 方法可以缩放画布的水平和垂直的单位。两个参数都是实数,可以为负数,x 为水平缩放因子,y 为垂直缩放因子,如果比1小,会缩小图形, 如果比1大会放大图形。默认值为1, 为实际大小。

画布初始情况下, 是以左上角坐标为原点的第一象限。如果参数为负实数, 相当于以x 或 y轴作为对称轴镜像反转(例如, 使用translate(0,canvas.height); scale(1,-1); 以y轴作为对称轴镜像反转, 就可得到著名的笛卡尔坐标系,左下角为原点)。

默认情况下,canvas 的 1 个单位为 1 个像素。举例说,如果我们设置缩放因子是 0.5,1 个单位就变成对应 0.5 个像素,这样绘制出来的形状就会是原先的一半。同理,设置为 2.0 时,1 个单位就对应变成了 2 像素,绘制的结果就是图形放大了 2 倍。

5.4 变形 transform

transform(a, b, c, d, e, f)

a (m11): 水平方向的缩放;

b(m12): 竖直方向的倾斜偏移;

c(m21): 水平方向的倾斜偏移;

d(m22): 竖直方向的缩放;

e(dx): 水平方向的移动;

f(dy): 竖直方向的移动.



|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  | // 保存 |
|  |  ctx.save() |
|  |  ctx.transform(0.5, 0, 1, 0.5, 100, 100) |
|  |  ctx.fillRect(0, 0, 100,100) |
|  | // 恢复 |
|  |  ctx.restore() |
|  | // 渲染位置是没有存档之前的位置 |
|  |  ctx.fillRect(0, 200, 100, 100) |
|  |  |
|  | } |


5.5 滚动的车轮案例

  • index.html


|  | html> |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  | canvas的变形-滚动的车轮title> |
|  | <link rel="stylesheet" href="./css/reset.css" type="text/css"> |
|  | <link rel="stylesheet" href="./css/index.css" type="text/css"> |
|  | head> |
|  |  |
|  | <body> |
|  | <canvas id="mycanvas"width="1200" height="600" > |
|  |  当前的浏览器版本不支持,请升级浏览器 |
|  | canvas> |
|  | <script src='./dist/canvas.js'>script> |
|  | body> |
|  | html> |


</code></pre> 
     <ul> 
      <li>所需图片</li> 
     </ul> <p></p> 
     <ul> 
      <li>canvas.ts</li> 
     </ul> <pre><code>

|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  |  |
|  | if (ctx !== null) { |
|  | // 第一步是创建一个image元素 |
|  | const image:HTMLImageElement = new Image() |
|  | // 用src设置图片的地址 |
|  |  image.src = "image/汽车车轮.png" |
|  | // 必须要在onload函数内绘制图片,否则不会渲染 |
|  |  image.onload = () => { |
|  | // 定时器 |
|  | // 旋转的度数 |
|  | let deg = 0 |
|  | // 位置 |
|  | let x= -100 |
|  |  |
|  | setInterval(() => { |
|  | // 清除画布 |
|  |  ctx.clearRect(0, 0, myCanvas.width, myCanvas.height) |
|  |  deg += 0.1 |
|  |  x += 5 |
|  | if(x >= myCanvas.width - 100) { |
|  |  x = -100 |
|  |  } |
|  | // 备份 |
|  |  ctx.save() |
|  | // 平移, 目前我们的原点为(100,300) |
|  |  ctx.translate(x, 300) |
|  | // 旋转,因为旋转始终在canvas的原点,所以我们得用translate改变原点。 |
|  |  ctx.rotate(deg) |
|  | // 我们得让车轮的中心处于原点,所以我们需要在第一个和第二个参数各为第三和第四个参数的一半然后再加负号 |
|  |  ctx.drawImage(image, -100, -100, 200, 200) |
|  | // 恢复 |
|  |  ctx.restore() |
|  |  }, 1000/60) |
|  |  } |
|  | } |


</code></pre> 
     <ul> 
      <li>整体架构</li> 
     </ul> <p></p> 
     <ul> 
      <li>实现的效果<br> </li> 
     </ul> </a>
    <h2><a id="55__1316"></a><a id="_1416">六、合成与裁剪</a></h2>
    <a id="_1416"> <p>合成其实就是我们常见的蒙版状态,本质就是如何进行压盖,如何进行显示。</p> <p>在之前我们总是将一个图形画在另一个之上,对于其他更多的情况,仅仅这样是远远不够的。比如,对合成的图形来说,绘制顺序会有限制。不过,我们可以利用 <code>globalCompositeOperation</code> 属性来改变这种状况。此外, <code>clip</code>属性允许我们隐藏不想看到的部分图形。</p> <p>比如我们此时花了一个方和一个圆,第一次画的是方,第二次画的是圆,所以会出现圆压盖方的现象</p> <pre><code>

|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  |  ctx.fillStyle = 'skyblue' |
|  |  ctx.fillRect(100, 100, 100, 100) |
|  |  ctx.fillStyle = 'deeppink' |
|  |  ctx.beginPath() |
|  |  ctx.arc(200, 200, 60, 0, 7,false) |
|  |  ctx.fill() |
|  | } |


</code></pre> <p></p> </a>
    <h3><a id="_1416"></a><a id="61_globalCompositeOperation_1452">6.1 globalCompositeOperation</a></h3>
    <a id="61_globalCompositeOperation_1452"> <p><code>globalCompositeOperation = type</code></p> <p>这个属性设定了在画新图形时采用的遮盖策略,其值是一个标识12种遮盖方式的字符串。具体情况看MDN。</p> <p>我们可以通过这个属性来对上方设置压盖顺序:</p> <p>比如说此时我们想让粉色在下面, 可以使用destination-over:</p> <pre><code>

|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  |  ctx.fillStyle = 'skyblue' |
|  |  ctx.fillRect(100, 100, 100, 100) |
|  |  ctx.globalCompositeOperation= 'destination-over' |
|  |  ctx.fillStyle = 'deeppink' |
|  |  ctx.beginPath() |
|  |  ctx.arc(200, 200, 60, 0, 7,false) |
|  |  ctx.fill() |
|  | } |


</code></pre> <p></p> </a>
    <h3><a id="61_globalCompositeOperation_1452"></a><a id="62__1492">6.2 裁剪路径</a></h3>
    <a id="62__1492"> <p>裁切路径和普通的 canvas 图形差不多,不同的是它的作用是遮罩,用来隐藏不需要的部分。如下图所示。红边五角星就是裁切路径,所有在路径以外的部分都不会在 canvas 上绘制出来。</p> <p></p> <p>如果和上面介绍的 <code>globalCompositeOperation</code> 属性作一比较,它可以实现与 <code>source-in</code> 和 <code>source-atop</code>差不多的效果。最重要的区别是裁切路径不会在 canvas 上绘制东西,而且它永远不受新图形的影响。这些特性使得它在特定区域里绘制图形时相当好用。</p> <p><code>clip()</code>: 将当前正在构建的路径转换为当前的裁剪路径。默认情况下,canvas 有一个与它自身一样大的裁切路径(也就是没有裁切效果)。</p> </a>
    <h3><a id="62__1492"></a><a id="63__1507">6.3 刮刮乐案例</a></h3>
    <a id="63__1507"> 
     <ul> 
      <li>index.html</li> 
     </ul> <pre><code>

|  | html> |
|  | <html lang="en"> |
|  |  |
|  | <head> |
|  | <meta charset="UTF-8"> |
|  | <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|  | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|  | <title>canvas实现刮刮乐title> |
|  | <link rel="stylesheet" href="./css/reset.css" type="text/css"> |
|  | <link rel="stylesheet" href="./css/index.css" type="text/css"> |
|  | head> |
|  |  |
|  | <body> |
|  | <div> |
|  |  特等奖 |
|  | <canvas width="250" height="60" id="mycanvas"> |
|  |  当前的浏览器版本不支持,请升级浏览器 |
|  | canvas> |
|  | div> |
|  | <script src='./dist/canvas.js'>script> |
|  | body> |
|  | html> |


</code></pre> 
     <ul> 
      <li>index.css</li> 
     </ul> <pre><code>

|  | div { |
|  | border: 1px solid #000; |
|  | width: 250px; |
|  | height: 60px; |
|  | font-size: 40px; |
|  | line-height: 60px; |
|  | text-align: center; |
|  | position: relative; |
|  |  user-select: none; |
|  | } |
|  |  |
|  | canvas { |
|  | position: absolute; |
|  | left: 0; |
|  | top: 0; |
|  | } |


</code></pre> 
     <ul> 
      <li>canvas.ts</li> 
     </ul> <pre><code>

|  | // 得到画布 |
|  | const myCanvas: HTMLCanvasElement = document.getElementById('mycanvas') as HTMLCanvasElement |
|  | // 获得上下文 |
|  | const ctx = myCanvas.getContext('2d') |
|  |  |
|  | if (ctx !== null) { |
|  |  ctx.fillStyle = '#333' |
|  |  ctx.fillRect(0, 0, 250, 60) |
|  | // 设置新画上的元素,实际上就是擦除之前的元素 |
|  |  ctx.globalCompositeOperation = 'destination-out' |
|  |  |
|  | const func = (event:any) => { |
|  | // 画图 |
|  |  ctx.beginPath() |
|  |  ctx.arc(event.offsetX, event.offsetY,10, 0, Math.PI * 2,false) |
|  |  ctx.fill() |
|  |  } |
|  | // 按下 |
|  |  myCanvas.onmousedown = () => { |
|  | // 添加鼠标移动事件 |
|  |  myCanvas.addEventListener('mousemove', func) |
|  |  } |
|  | // 松开 |
|  |  myCanvas.onmouseup = () => { |
|  | // 删除鼠标移动事件 |
|  |  myCanvas.removeEventListener('mousemove', func) |
|  |  } |
|  | } |


</code></pre> 
     <ul> 
      <li>实现效果</li> 
     </ul> <p></p> </a>
    <h2><a id="63__1507"></a><a id="_1615">七、总结</a></h2>
    <a id="_1615"> <p>至此,一个简单的学习canvas教程已经完结,大家还是多看看文档吧,希望这个教程能让大家喜欢上canvas并且好好的利用它!</p> </a>
   </div>
   <a id="_1615"> </a>
  </div>
 
</div> <div data-v-9d595948>
            锐单商城拥有海量<a href="/minstation/pdf/" target="_blank" data-v-9d595948>元器件数据手册</a>、<a href="/minstation/tidai/" target="_blank" data-v-9d595948>IC替代型号</a>,打造<a href="/minstation/ic/" target="_blank" data-v-9d595948>电子元器件IC百科</a>大全!
          </div></div></article> <section class="relation" data-v-9d595948><h2 data-v-9d595948>相关文章</h2> <ul class="b-flex-wrap" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226694" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>三个I/O口实现的3*4矩阵按键程序</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226693" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>avr0~5V数字式直流电压表设计</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226692" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>简介各种华人生产的单片机</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226691" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>自制AVR高压并行编程器成功,可随意修改熔丝位,能恢复被配置为IO复位引脚</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226690" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>CC1101/CC1100、stc单片机模拟2262-2272解码</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226689" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>数码管和流水灯同时工作</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226688" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>呼吸灯的c51程序</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226687" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>TLC5615信号发生器程序-正弦波,锯齿波,方波,三角波</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226686" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>TLC5615简易数控电压表</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226685" rel class="text-hover" data-v-9d595948><p class="text-ellipsis" data-v-9d595948>我的求职经历-电子工程</p></a></li></ul></section> <div class="articles-mini" data-v-9d595948><ul class="navs b-flex" data-v-9d595948><li class="bar" data-v-9d595948><a href="/infomation/4" target="_blank" class="act" data-v-9d595948>动态</a></li><li class="bar" data-v-9d595948><a href="/infomation/10" target="_blank" data-v-9d595948>产品</a></li><li class="bar" data-v-9d595948><a href="/infomation/11" target="_blank" data-v-9d595948>新闻</a></li><li class="bar" data-v-9d595948><a href="/infomation/13" target="_blank" data-v-9d595948>电路图</a></li><li class="bar" data-v-9d595948><a href="/infomation/8" target="_blank" data-v-9d595948>方案</a></li><li class="bar" data-v-9d595948><a href="/infomation/9" target="_blank" data-v-9d595948>技术</a></li><li class="bar" data-v-9d595948><a href="/infomation/1" target="_blank" data-v-9d595948>公告</a></li></ul> <div class="cont b-flex" style="display:;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img src="https://web.ruidan.com/images/aritcle/programmes/20240604/thumbnail/734c70ed92a4432ab2afb033e8c8c133.png?Expires=2348212326&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=NVJ%2B8ZqMScVgpKtOvS7aUtV7H8M%3D" data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306980" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>“AWS中国,你该降价了”</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306979" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>最高亏损17亿元?这3家动力电池制造商营业利润“暴跌”</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306976" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>拆解报告:联想thinkplus 30W 5000mAh氮化镓二合一随身充Pro</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306975" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>供应链的优化难题,20年没有改变 - 许永硕 - 许永硕</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306974" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>Linux BSP实战课(中断篇):中断控制器的驱动实现</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img src="https://web.ruidan.com/images/aritcle/20240220/cbedd4445d984b608a3cb61243060569.png?Expires=2339133098&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=q0Ssd0MD831ir6htZEB6%2Bm9WysA%3D" data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/215896" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>芯片纳米制程竞争:台积电吞晶圆代工六成市场 唯一对手三星</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/215898" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>热电半导体迎发展新机遇,LG Innotek看好中国市场潜力</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/215888" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>比文字更有感染力,VR技术能让人更同情当事人</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/215891" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>在第五次计算浪潮下,Arm持续加码物联网领域</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/215892" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>微软第一财季净利润88.2亿美元 同比增长34%</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306970" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>Microchip推出TimeProvider® XT扩展系统,实现向现代同步和授时系统架构迁移</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306969" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>吉利汽车与意法半导体签署碳化硅长期供应协议,深化新能源汽车转型;成立创新联合实验室,推动双方创新合作</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306968" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>DKUH-1: 电流补偿高电流扼流圈</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306967" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>集成工业物联网(IIoT)功能创造附加价值</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/306966" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>物联网赋能工业生产维护与安全</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img src="https://web.ruidan.com/images/aritcle/programmes/20230902/thumbnail/2ea75d814501487b8715f56f26d516bd.png?Expires=2324387701&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=HwacB4zNAexDPv3oYozbNdkCNGQ%3D" data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/258434" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>步进电动机的工作原理</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/258433" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>自整角机接线图</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/258432" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>无刷直流电动机的结构</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/258431" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>无刷直流电动机的工作原理</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/258430" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>三相六拍通电方式工作原理</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289872" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>eZ80F91 MCU 以太网传输方案</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289871" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>失配损耗对级联放大器增益的影响</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289870" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>用于车载显示系统的 LSI 系列解决方案</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289869" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>适用于高功率应用的改进型 TO-247PLUS 分立封装解决方案</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289868" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>直流快速充电器启动方案</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img src="https://web.ruidan.com/images/aritcle/programmes/20230421/thumbnail/list-noimg-35461bb180dbc0d603306be50220f657.png" data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226694" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>三个I/O口实现的3*4矩阵按键程序</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226693" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>avr0~5V数字式直流电压表设计</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226692" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>简介各种华人生产的单片机</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226691" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>自制AVR高压并行编程器成功,可随意修改熔丝位,能恢复被配置为IO复位引脚</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/226690" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>CC1101/CC1100、stc单片机模拟2262-2272解码</p></a></li></ul></div><div class="cont b-flex" style="display:none;" data-v-9d595948><span class="img b-flex-shrink0 b-flex-center" data-v-9d595948><img src="https://web.ruidan.com/images/aritcle/20240412/5f03ab9624c340f3a9dd59428b1bc4ea.png?Expires=2343610238&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=lsBBNpFK%2B7LzRxeJBigzJq9V%2Bj4%3D" data-v-9d595948></span> <ul class="lists b-flex-grow1" data-v-9d595948><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289765" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>锐单2024年51劳动节放假通知</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/289499" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>锐单商城2024年清明节放假通知</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/274663" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>2024年春节锐单商城放假安排</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/274067" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>【通知】2024年元旦锐单商城放假安排</p></a></li><li class="item" data-v-9d595948><a href="https://www.ruidan.com/infomation/detail/266368" rel data-v-9d595948><p class="text-ellipsis" data-v-9d595948>2023年锐单商城国庆节放假通知</p></a></li></ul></div></div></div> <aside class="infomation-aside b-flex-shrink0" data-v-9d595948><div class="infomation-brand" data-v-95a7265e data-v-9d595948><h3 data-v-95a7265e><i class="iconfont iconpinpai" data-v-95a7265e></i> 品牌专区</h3> <ul class="b-flex-wrap" data-v-95a7265e><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/5" rel title="欧姆龙" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="欧姆龙_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_12.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/540" rel title="国巨" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="国巨_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_10.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/30" rel title="英飞凌" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="英飞凌_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_5.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/34" rel title="亚德诺" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="亚德诺_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_3.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/42" rel title="恩智浦" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="恩智浦_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_9.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/44" rel title="安森美" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="安森美_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_1.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/55" rel title="罗姆" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="罗姆_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_11.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/61" rel title="意法半导体" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="意法半导体_undefined" src="https://web.ruidan.com/images/brand/recommend/-e-brand_logo_15.png?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90" data-v-95a7265e></div></a></li><li class="brand" data-v-95a7265e><a href="https://www.ruidan.com/brand/63" rel title="东电化" data-v-95a7265e><div class="img b-flex-center" data-v-95a7265e><img alt="东电化_undefined" src="https://web.ruidan.com/images/brand/recommend/TDK.jpg?x-oss-process=image/auto-orient,1/interlace,1/resize,m_lfit,w_200/quality,q_90/format,jpg" data-v-95a7265e></div></a></li></ul></div> <div class="infomation-tab" data-v-f4168900 data-v-9d595948><p class="tab" data-v-f4168900><a href="/activity" target="_blank" class="active" data-v-f4168900> 热销</a> <a href="/tidai/" target="_blank" data-v-f4168900>替代</a> <a href="/pdf/" target="_blank" data-v-f4168900>pdf库</a> <a href="/ic/" target="_blank" data-v-f4168900>ic百科</a></p> <ul class="b-flex-wrap" style="display:;" data-v-f4168900><li data-v-f4168900><a href="/goods/detail/3077104" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C2012NP01H153J085AA</a></li><li data-v-f4168900><a href="/goods/detail/3077105" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGB4B3X5R1A225K055AB</a></li><li data-v-f4168900><a href="/goods/detail/3077106" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>FA26X7R2E473KNU00</a></li><li data-v-f4168900><a href="/goods/detail/3077107" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C1005JB0G475K050BB</a></li><li data-v-f4168900><a href="/goods/detail/3077108" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>DK1E3EA152M86RBH01</a></li><li data-v-f4168900><a href="/goods/detail/3077109" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C3225NP02J333J250AA</a></li><li data-v-f4168900><a href="/goods/detail/3077110" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CL21B681KBANNNC</a></li><li data-v-f4168900><a href="/goods/detail/3077111" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GA-14</a></li><li data-v-f4168900><a href="/goods/detail/3077112" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C1808C470FHGAC7800</a></li><li data-v-f4168900><a href="/goods/detail/3077113" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGA3E2X8R2A472K080AD</a></li><li data-v-f4168900><a href="/goods/detail/3077114" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGA3E3X5R1V334M080AB</a></li><li data-v-f4168900><a href="/goods/detail/3077115" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGA3E2X8R1H103M080AA</a></li><li data-v-f4168900><a href="/goods/detail/3077116" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>22252C334KAT2A</a></li><li data-v-f4168900><a href="/goods/detail/3077117" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CL10C680FB8NNNC</a></li><li data-v-f4168900><a href="/goods/detail/3077118" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C2012NP01H153J085AA</a></li><li data-v-f4168900><a href="/goods/detail/3077119" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGB4B3X5R1A225K055AB</a></li><li data-v-f4168900><a href="/goods/detail/3077120" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C0805C472KARECAUTO</a></li><li data-v-f4168900><a href="/goods/detail/3077121" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C1005JB0G475K050BB</a></li><li data-v-f4168900><a href="/goods/detail/3077122" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>FK24C0G1H153JN000</a></li><li data-v-f4168900><a href="/goods/detail/3077123" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>12061A681FAT2A</a></li><li data-v-f4168900><a href="/goods/detail/3077124" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C3225NP02J333J250AA</a></li><li data-v-f4168900><a href="/goods/detail/3077125" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C4532JB2J104K230KA</a></li><li data-v-f4168900><a href="/goods/detail/3077126" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>KCM55QR7YA176KH01K</a></li><li data-v-f4168900><a href="/goods/detail/3077127" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GA243DR7E2472MW01L</a></li><li data-v-f4168900><a href="/goods/detail/3077128" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGA3E2X8R2A472K080AD</a></li><li data-v-f4168900><a href="/goods/detail/3077129" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CL21B471KBANNNC</a></li><li data-v-f4168900><a href="/goods/detail/3077130" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>DK1E3EA152M86RBH01</a></li><li data-v-f4168900><a href="/goods/detail/3077131" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>CGA3E3X5R1V334M080AB</a></li><li data-v-f4168900><a href="/goods/detail/3077132" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>FD-16AU</a></li><li data-v-f4168900><a href="/goods/detail/3077133" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>440LD15-R</a></li></ul> <ul class="b-flex-wrap" style="display:none;" data-v-f4168900><li data-v-f4168900><a href="/tidai/3f8f916b31f0d27753168c4330cc16a3" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0101ZD102KAT2A</a></li><li data-v-f4168900><a href="/tidai/497e48136b13ad0081696ae69fd34d93" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>02013A100DAT2A</a></li><li data-v-f4168900><a href="/tidai/544a6925459d77aadb6897222f68f7fc" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>02013A560JAT2A</a></li><li data-v-f4168900><a href="/tidai/544a6925459d77aadb6897222f68f7fc" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GRM0335C1E560JD01D</a></li><li data-v-f4168900><a href="/tidai/a67306b6ae7de2720812a276c7eac123" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GRM033C80G104KE19D</a></li><li data-v-f4168900><a href="/tidai/c455bf1b672b097c31a43d285613df3f" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GRM033C80G104KE19J</a></li><li data-v-f4168900><a href="/tidai/27c5d3be7b0ef1e1ec86e3a5308d62dc" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>GRM0335C1H100JA01J</a></li><li data-v-f4168900><a href="/tidai/585aceadfdfc81a4a5b47020cc7950d7" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>02016D103KAQ2A</a></li><li data-v-f4168900><a href="/tidai/623bd5c8735e87afbb9a76a8856b98a1" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>02015A150JAT2A</a></li><li data-v-f4168900><a href="/tidai/351f1f9c03d4ceec179f804f631260f4" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0201ZD103JAT2A</a></li><li data-v-f4168900><a href="/tidai/1125472e753092f924288c8743e4443a" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0201YD102KAT2A</a></li><li data-v-f4168900><a href="/tidai/4d23f852334c19c4551de90e4ddee33c" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>NMC0201X5R182K10TRPLP10</a></li><li data-v-f4168900><a href="/tidai/40f7efd15777ecd42a9e31d4ade2ba7f" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>ECJ-ZEC1C820J</a></li><li data-v-f4168900><a href="/tidai/b9b1dc52ecd80e95750b485dde58d232" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>04023A220JAT2A</a></li><li data-v-f4168900><a href="/tidai/962f5b76d2f8994e7cc3327cf75cc576" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>LD023A101GAB2A</a></li><li data-v-f4168900><a href="/tidai/5b0341a8a54ca09d28738b6a52c38f79" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>ECJ0EB1E562K</a></li><li data-v-f4168900><a href="/tidai/5b0341a8a54ca09d28738b6a52c38f79" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0402B562K160NT</a></li><li data-v-f4168900><a href="/tidai/1fb6f4e8bae175b5798535e3f77b3d99" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>VJ0402A270JXXAC</a></li><li data-v-f4168900><a href="/tidai/8fa16fed0c49473fbb986dc50c5d74a9" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>NPO0402HTTP390J</a></li><li data-v-f4168900><a href="/tidai/5d6cdcc0fcdfda0c9ed93c31abacea89" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C1608C0G1H390JT</a></li><li data-v-f4168900><a href="/tidai/34dad9e2f0df60b41794f63d1a6a08cb" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>NPO0402HTTP180J</a></li><li data-v-f4168900><a href="/tidai/e8fc19dd7614eedfba97734f6553dcd3" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>C1005C0G1H620J</a></li><li data-v-f4168900><a href="/tidai/3c83ed8c73aefa33ec091930519f94c3" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>04026D104KAT2A</a></li><li data-v-f4168900><a href="/tidai/c24aa7e03baa1bf0b104b656927e6c9c" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>LD025C471KAB2A</a></li><li data-v-f4168900><a href="/tidai/a9d8e130be7b00271607dd935d3e9a9f" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>04025C471KAJ2A</a></li><li data-v-f4168900><a href="/tidai/da7921deeb9753f4ea3232184c2c049e" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0402YC333JAT2A</a></li><li data-v-f4168900><a href="/tidai/addaedbde4a3339fe4e5905ff85b04ef" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0402ZD104KAT2A</a></li><li data-v-f4168900><a href="/tidai/addaedbde4a3339fe4e5905ff85b04ef" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0402YD104KAT2A</a></li><li data-v-f4168900><a href="/tidai/25ba75041c4122cdccc2826de3539d15" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>0402YD104KAT2A</a></li><li data-v-f4168900><a href="/tidai/1b2f92efb63d94d2e1a5e78e77f54627" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>05085C103KAT2W</a></li></ul> <ul class="b-flex-wrap" style="display:none;" data-v-f4168900><li data-v-f4168900><a href="/pdf/4719dfbafe605f5f09705e8fbd3c9f77" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43505C9227M67</a></li><li data-v-f4168900><a href="/pdf/77bbacab73752b78511ed910b9452027" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43511C827M80</a></li><li data-v-f4168900><a href="/pdf/24d0e4c7ef085dfa53f638e9b6cdf093" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508E2397M80</a></li><li data-v-f4168900><a href="/pdf/6258c6f1e8aff931627e8991911dbe32" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43505A5227M007</a></li><li data-v-f4168900><a href="/pdf/a7cee4547da03926d81cc6ec0375e9c6" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43515A4128M087</a></li><li data-v-f4168900><a href="/pdf/297f7658765bd074b6ee6de176c8c5eb" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B9158M087</a></li><li data-v-f4168900><a href="/pdf/057b5f9d7d65769056fd707115bb3f22" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43511A5158M87</a></li><li data-v-f4168900><a href="/pdf/04322c4bcaa58536d05ddc52b313216f" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B5687M87</a></li><li data-v-f4168900><a href="/pdf/eac9c4b915b2acd69597ac4278c15ddc" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508E2477M67</a></li><li data-v-f4168900><a href="/pdf/b8f7708bc38062164bf3b21ee5aefdaa" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508G2108M60</a></li><li data-v-f4168900><a href="/pdf/2d00caf0b146aa503cd56f93f5ced67e" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B6687M87</a></li><li data-v-f4168900><a href="/pdf/cc26ba50579eeb7d97d17941dcc4fd77" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43513A9228M000</a></li><li data-v-f4168900><a href="/pdf/5380049f4ee97d6ff4659994a0f6e326" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43544F2827M060</a></li><li data-v-f4168900><a href="/pdf/13db4518b6881fa8ccff9784c38aca34" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B9158M80</a></li><li data-v-f4168900><a href="/pdf/06271f82870d934f99ccf3015ada90c7" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508B2567M000</a></li><li data-v-f4168900><a href="/pdf/33edbaf837bd5a619eb339d3d337d8b5" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508B9397M67</a></li><li data-v-f4168900><a href="/pdf/88271cc121aa8482c884c34ac97d9d8a" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508E2277M80</a></li><li data-v-f4168900><a href="/pdf/979bc809c097d32b807182df6ef22a29" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508E2687M62</a></li><li data-v-f4168900><a href="/pdf/819e2dfcc9b9e94100e458f3994e3d69" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510A9687M000</a></li><li data-v-f4168900><a href="/pdf/0a2d1f9453e18c1b9bfd2630732b24e3" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43509A5686M007</a></li><li data-v-f4168900><a href="/pdf/a410d9f84659676ab057b8baa3f2da81" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B9188M80</a></li><li data-v-f4168900><a href="/pdf/f26a8b0ff04ac54a2d5d2024993e5cc7" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508C2827M87</a></li><li data-v-f4168900><a href="/pdf/93e4f05c6a7290dfc76da6fb8e443ced" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43511C9158M87</a></li><li data-v-f4168900><a href="/pdf/516e7d878c3a7540ed2350d4afc8e640" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508E2228M62</a></li><li data-v-f4168900><a href="/pdf/31fc6f034ee5e8c14b07651e38f7bf4c" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43515A5108M000</a></li><li data-v-f4168900><a href="/pdf/eeae7657977265306a1e1a4b597db185" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508G2108M60</a></li><li data-v-f4168900><a href="/pdf/b51d1a6c95ac2551df704b049e822daf" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43510B9158M80</a></li><li data-v-f4168900><a href="/pdf/8863cd7fe062198dbfe73e68fb3ded55" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43512A5108M000</a></li><li data-v-f4168900><a href="/pdf/7f5b7ae9a648a8c3bfca1deebcb547d3" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43511C9158M87</a></li><li data-v-f4168900><a href="/pdf/82d3825315235e0b5b2545e983b4c8df" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>B43508G2567M82</a></li></ul> <ul class="b-flex-wrap" style="display:none;" data-v-f4168900><li data-v-f4168900><a href="/ic/100411310607879635" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-058</a></li><li data-v-f4168900><a href="/ic/100411310607879636" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-023</a></li><li data-v-f4168900><a href="/ic/100411310607879638" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-047</a></li><li data-v-f4168900><a href="/ic/100411310607879639" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-062</a></li><li data-v-f4168900><a href="/ic/100411310607879641" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-010</a></li><li data-v-f4168900><a href="/ic/100411310607879642" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-075</a></li><li data-v-f4168900><a href="/ic/100411310607879643" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-024</a></li><li data-v-f4168900><a href="/ic/100411310607879644" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-059</a></li><li data-v-f4168900><a href="/ic/100411310607879646" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-060</a></li><li data-v-f4168900><a href="/ic/100411310607879648" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-076</a></li><li data-v-f4168900><a href="/ic/100411310607879649" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-036</a></li><li data-v-f4168900><a href="/ic/100411310607879650" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-063</a></li><li data-v-f4168900><a href="/ic/100411310607879652" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-077</a></li><li data-v-f4168900><a href="/ic/100411310607879653" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-025</a></li><li data-v-f4168900><a href="/ic/100411310607879656" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-064</a></li><li data-v-f4168900><a href="/ic/100411310607879657" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-050</a></li><li data-v-f4168900><a href="/ic/100411310607879658" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-090</a></li><li data-v-f4168900><a href="/ic/100411310607879659" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-065</a></li><li data-v-f4168900><a href="/ic/100411310607879661" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-079</a></li><li data-v-f4168900><a href="/ic/100411310607879662" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-066</a></li><li data-v-f4168900><a href="/ic/100411310607879663" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-051</a></li><li data-v-f4168900><a href="/ic/100411310607879664" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-PE-001</a></li><li data-v-f4168900><a href="/ic/100411310607879665" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-039</a></li><li data-v-f4168900><a href="/ic/100411310607879666" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-052</a></li><li data-v-f4168900><a href="/ic/100411310607879667" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-080</a></li><li data-v-f4168900><a href="/ic/100411310607879669" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-067</a></li><li data-v-f4168900><a href="/ic/100411310607879670" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-PE-002</a></li><li data-v-f4168900><a href="/ic/100411310607879671" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-053</a></li><li data-v-f4168900><a href="/ic/100411310607879673" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-040</a></li><li data-v-f4168900><a href="/ic/100411310607879674" target="_blank" class="ellipsis text-ellipsis text-hover" data-v-f4168900>BCS-145-L-D-HE-081</a></li></ul></div> <div class="infomation-article" data-v-72940035 data-v-9d595948><h6 data-v-72940035><i class="iconfont iconwendang2" data-v-72940035></i> 热门文章</h6> <ul data-v-72940035><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306980" rel title="“AWS中国,你该降价了”" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>“AWS中国,你该降价了”</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306979" rel title="最高亏损17亿元?这3家动力电池制造商营业利润“暴跌”" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>最高亏损17亿元?这3家动力电池制造商营业利润“暴跌”</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306976" rel title="拆解报告:联想thinkplus 30W 5000mAh氮化镓二合一随身充Pro" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>拆解报告:联想thinkplus 30W 5000mAh氮化镓二合一随身充Pro</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306975" rel title="供应链的优化难题,20年没有改变 - 许永硕 - 许永硕" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>供应链的优化难题,20年没有改变 - 许永硕 - 许永硕</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306974" rel title="Linux BSP实战课(中断篇):中断控制器的驱动实现" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>Linux BSP实战课(中断篇):中断控制器的驱动实现</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306962" rel title="引导创新的几个思路(一)" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>引导创新的几个思路(一)</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306961" rel title="CGD为数据中心、逆变器等更多应用推出新款低热阻GaN功率IC封装" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>CGD为数据中心、逆变器等更多应用推出新款低热阻GaN功率IC封装</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306960" rel title="解码AI:MiR1200 托盘搬运叉车让自动化再进一步" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>解码AI:MiR1200 托盘搬运叉车让自动化再进一步</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306959" rel title="规模化量产元年已至,4D成像雷达将如何冲击市场?" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>规模化量产元年已至,4D成像雷达将如何冲击市场?</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306958" rel title="先进封装中HBM的技术难点" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>先进封装中HBM的技术难点</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306957" rel title="张江这家芯片独角兽IPO终止!" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>张江这家芯片独角兽IPO终止!</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306956" rel title="为什么串阻阻值通常是22到33欧姆,看完后不信你不懂!" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>为什么串阻阻值通常是22到33欧姆,看完后不信你不懂!</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306955" rel title="液晶面板:“弱恢复周期”的生存之道" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>液晶面板:“弱恢复周期”的生存之道</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306954" rel title="德州仪器MSPM0系列MCU的进阶之路" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>德州仪器MSPM0系列MCU的进阶之路</p></a></div></li><li class="article" data-v-72940035><div class="article-title" data-v-72940035><a href="https://www.ruidan.com/infomation/detail/306953" rel title="12.3亿!3个储能项目有新进度" class="text-hover" data-v-72940035><p class="text-ellipsis" data-v-72940035>12.3亿!3个储能项目有新进度</p></a></div></li></ul></div></aside></div></div> <footer class="foot"><div class="tags-show"><div class="server-tags-show" data-v-30fdb521><div class="server-tags b-flex-justify-between" data-v-30fdb521><div class="tag more" data-v-30fdb521><i class="iconfont icontedianzhengpinbaozhang" data-v-30fdb521></i> <div class="desc" data-v-30fdb521><h3 data-v-30fdb521>原厂原装正品</h3> <span data-v-30fdb521>所有产品均来自原厂授权分销商,货源真实,放心采购</span></div></div> <div class="tag fast" data-v-30fdb521><i class="iconfont iconxinpian" data-v-30fdb521></i> <div class="desc" data-v-30fdb521><h3 data-v-30fdb521>海量现货库存</h3> <span data-v-30fdb521>全球十几家著名海外分销商授权合作,拥有1000万真实现货库存数据</span></div></div> <div class="tag good" data-v-30fdb521><i class="iconfont iconkehuzhichifuwu" data-v-30fdb521></i> <div class="desc" data-v-30fdb521><h3 data-v-30fdb521>人性化采购服务</h3> <span data-v-30fdb521>批量询价、BOM配单、SMT定制服务,锐单电子给您芯体验</span></div></div> <div class="tag save" data-v-30fdb521><i class="iconfont iconjiagebaozhangfuxing" data-v-30fdb521></i> <div class="desc" data-v-30fdb521><h3 data-v-30fdb521>一站式明码标价</h3> <span data-v-30fdb521>支持样片和小批量订单,为中小企业客户明码放心价</span></div></div></div></div></div> <div class="support-show"><div class="server-support" data-v-4ba94e32><ul class="supports" data-v-4ba94e32><li class="item" data-v-4ba94e32><h5 data-v-4ba94e32>购物指南</h5> <p data-v-4ba94e32><a href="/help/6" rel="nofollow" target="_blank" data-v-4ba94e32> 新手入门</a></p> <p data-v-4ba94e32><a href="/help/7" rel="nofollow" target="_blank" data-v-4ba94e32>购物流程</a></p> <p data-v-4ba94e32><a href="/help/8" rel="nofollow" target="_blank" data-v-4ba94e32>商品搜索</a></p> <p data-v-4ba94e32><a href="/help/17" rel="nofollow" target="_blank" data-v-4ba94e32>注册登录</a></p> <p data-v-4ba94e32><a href="/help/18" rel="nofollow" target="_blank" data-v-4ba94e32>找回密码</a></p></li> <li class="item" data-v-4ba94e32><h5 data-v-4ba94e32>支付&服务</h5> <p data-v-4ba94e32><a href="/help/10" rel="nofollow" target="_blank" data-v-4ba94e32>快递运输</a></p> <p data-v-4ba94e32><a href="/help/15" rel="nofollow" target="_blank" data-v-4ba94e32>联系我们</a></p> <p data-v-4ba94e32><a href="/help/16" rel="nofollow" target="_blank" data-v-4ba94e32>关于商城</a></p> <p data-v-4ba94e32><a href="/help/19" rel="nofollow" target="_blank" data-v-4ba94e32>支付方式</a></p> <p data-v-4ba94e32><a href="/help/20" rel="nofollow" target="_blank" data-v-4ba94e32>发票须知</a></p></li> <li class="item" data-v-4ba94e32><h5 data-v-4ba94e32>特色服务</h5> <p data-v-4ba94e32><a href="/help/23" rel="nofollow" target="_blank" data-v-4ba94e32>闪电发货</a></p> <p data-v-4ba94e32><a href="/help/24" rel="nofollow" target="_blank" data-v-4ba94e32>代购服务</a></p> <p data-v-4ba94e32><a href="/help/25" rel="nofollow" target="_blank" data-v-4ba94e32>免费入驻</a></p> <p data-v-4ba94e32><a href="/help/26" rel="nofollow" target="_blank" data-v-4ba94e32>免费报关</a></p> <p data-v-4ba94e32><a href="/searchs/A" target="_blank" data-v-4ba94e32>搜索大全</a></p></li> <li class="item" data-v-4ba94e32><h5 data-v-4ba94e32>特别说明</h5> <p data-v-4ba94e32><a href="/help/11" rel="nofollow" target="_blank" data-v-4ba94e32>隐私政策</a></p> <p data-v-4ba94e32><a href="/help/12" rel="nofollow" target="_blank" data-v-4ba94e32>使用条款</a></p> <p data-v-4ba94e32><a href="/minstation/pdf/" target="_blank" data-v-4ba94e32>数据手册</a></p> <p data-v-4ba94e32><a href="/minstation/ic/" target="_blank" data-v-4ba94e32>IC百科</a></p> <p data-v-4ba94e32><a href="/minstation/tidai/" target="_blank" data-v-4ba94e32>替代型号</a></p></li> <li class="item service-call" data-v-4ba94e32><h5 data-v-4ba94e32>全球服务热线</h5> <div class="hot-call" data-v-4ba94e32>400-990-0325</div> <p data-v-4ba94e32>服务时间:周一至周六 8:30-18:00</p> <p data-v-4ba94e32> 企业QQ: <a href="https://wpa1.qq.com/ozrHLWJc?_type=wpa&qidian=true" rel="nofollow" target="_blank" data-v-4ba94e32>4008211205</a></p> <p data-v-4ba94e32> 企业邮箱:product@ruidan.com</p> <p data-v-4ba94e32>入驻合作:ruidanshangcheng(微信)</p></li> <li class="item b-flex-grow1" data-v-4ba94e32><h5 class="img" data-v-4ba94e32><img alt="锐单电子微信公众号二维码" rel="nofollow" src="https://cdn.ruidan.com/images/information/weixin/weixin.jpg?x-oss-process=image/auto-orient,1/interlace,1/resize,m_lfit,w_200/quality,q_90/format,jpg" data-v-4ba94e32></h5> <p class="fw-7 text-center" data-v-4ba94e32>锐单商城微信公众号</p></li></ul></div></div> <div class="foot-bottom"><div class="foot-inshow"></div> <div class="help-center"><a href="javascript:;" class="ctrl"><i class="iconfont iconguanbi"></i></a> <ul class="collect"><li class="item"><a href class="block iconfont iconwechat-fill">微信咨询 </a> <div class="weixin"><img src="https://cdn.ruidan.com/images/information/weixin/qy-weixin.jpg" alt="weixin"> <p>扫码添加微信咨询</p></div></li> <li class="item"><a href="https://wpa1.qq.com/ozrHLWJc?_type=wpa&qidian=true" target="_blank" rel="nofollow" onclick undefined"!="typeof" _hmt&&_hmt.push(["_trackevent","联系客服","click","rightnav"])" class="block iconfont iconqq">QQ咨询</a></li> <li class="item"><a href="/cart" rel="nofollow" class="block iconfont icongou_wu_che2"><span class="nums" style="display:none;">0</span>
            购物车
          </a></li> <li class="item"><a href="https://www.ruidan.com/user" rel="nofollow" class="block iconfont iconxingmingyonghumingnicheng">会员中心</a></li> <!----></ul> <div class="away"><p>在线咨询</p></div></div> <div class="wrap"><div class="lie-show"><span class="item">
          字母索引:
        </span> <div class="indexes b-flex-align-center"><!----> <ul class="b-flex-grow1 b-flex-justify-between"><li><a href="/product/A" class="item">A</a></li><li><a href="/product/B" class="item">B</a></li><li><a href="/product/C" class="item">C</a></li><li><a href="/product/D" class="item">D</a></li><li><a href="/product/E" class="item">E</a></li><li><a href="/product/F" class="item">F</a></li><li><a href="/product/G" class="item">G</a></li><li><a href="/product/H" class="item">H</a></li><li><a href="/product/I" class="item">I</a></li><li><a href="/product/J" class="item">J</a></li><li><a href="/product/K" class="item">K</a></li><li><a href="/product/L" class="item">L</a></li><li><a href="/product/M" class="item">M</a></li><li><a href="/product/N" class="item">N</a></li><li><a href="/product/O" class="item">O</a></li><li><a href="/product/P" class="item">P</a></li><li><a href="/product/Q" class="item">Q</a></li><li><a href="/product/R" class="item">R</a></li><li><a href="/product/S" class="item">S</a></li><li><a href="/product/T" class="item">T</a></li><li><a href="/product/U" class="item">U</a></li><li><a href="/product/V" class="item">V</a></li><li><a href="/product/W" class="item">W</a></li><li><a href="/product/X" class="item">X</a></li><li><a href="/product/Y" class="item">Y</a></li><li><a href="/product/Z" class="item">Z</a></li><li><a href="/product/0" class="item">0</a></li><li><a href="/product/1" class="item">1</a></li><li><a href="/product/2" class="item">2</a></li><li><a href="/product/3" class="item">3</a></li><li><a href="/product/4" class="item">4</a></li><li><a href="/product/5" class="item">5</a></li><li><a href="/product/6" class="item">6</a></li><li><a href="/product/7" class="item">7</a></li><li><a href="/product/8" class="item">8</a></li><li><a href="/product/9" class="item">9</a></li></ul></div></div> <!----></div> <div class="copy-right text-center"><div class="copy-detail">
        © 2011-2023 锐单电子商城 版权所有
        <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030402004686" target="_blank" rel="nofollow" class="text-hover1 b-flex"><img src="https://cdn.ruidan.com/static/images/policeLogo.png"> 粤公网安备 44030402004686号</a> <a href="https://beian.miit.gov.cn" target="_blank" rel="nofollow" class="text-hover1">粤ICP备19070497号</a></div></div></div></footer></div></div></div><script src="https://cdn.ruidan.com/_nuxt/runtime.4700705.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/node_modules/commons.2a42e354.cbb3e29.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/node_modules/commons.7274e1de.30cf5a2.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/node_modules/commons.fdc6512a.2aec0b6.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.24120820.ee8b89e.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.399807b2.70d539c.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.2a8e0bc3.5e16e02.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.b7594acd.382e95b.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.b65b9db7.5c6c6a3.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.8ba97efe.a1c8395.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.a3edef0e.76fe05a.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/styles.62298082.965fcdb.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/app.24120820.aa54eee.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/app.d0ae3f07.9c95a17.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/app.31ecd969.51918de.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/app.b5906859.4c08c14.js" defer></script><script src="https://cdn.ruidan.com/_nuxt/app.793f9119.c658607.js" defer></script>
  
</body></html>