问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

HTML5 怎么让文字位置发生变化,还有怎么改变字体颜色

发布网友 发布时间:2022-04-23 18:14

我来回答

4个回答

懂视网 时间:2022-05-12 07:43

一、理解颜色

我们在电脑屏幕上可以看到色彩斑斓的图像,其实这些图像都是由一个个像素点组成的。那么像素是什么?颜色又是什么呢?(如果您提出这两个问题,您一定是个热爱思考的人)一个像素其实对应着内存中的一组连续的二进制位,由于是二进制位,每个位上的取值当然只能是 0 或者 1 了!这样,这组连续的二进制位就可以由 0 ,1 排列组合出很多种情况,而每一种排列组合就决定了这个像素的一种颜色。先看看下面这幅图


我们可以看到这幅图描述了六个像素点,一共由24个小方框组成。

注意:图中的一个小方框代表一个字节,即8个二进制位。

因此,每个像素点由四个字节组成。图中也分别标出了这四个字节代表的含义:

第一个字节决定像素的红色值

第二个字节决定像素的绿色值

第三个字节决定像素的蓝色值

第四个字节决定像素的透明度值

每一种分颜色值的大小是从 0 到 255(提问:为什么只能到255?) ,透明度的取值:0 代表完全透明,255代表完全不透明

这样,我们就可以用(255,0,0,255)来表示一个纯红色像素

在内存中,他是这样的一个32位的串: 11111111 00000000 00000000 11111111

二、操作像素

了解了颜色和像素的实质,我们就可以对图形进行更加复杂的处理。

可是,HTML5 目前还没有提供类似 setPixel 或者 getPixel 这样直接操作像素点的方法, 但是我们也有办法

就是使用 ImageData 对象:

ImageData对象用来保存图像像素值,它有 width、height和 data 三个属性,其中 data 属性就是一个连续数组,图像的所有像素值其实是保存在 data 里面的。

data 属性保存像素值的方法和我们在前面图片中看到的一模一样:

imageData.data[index*4 +0]
imageData.data[index*4 +1]
imageData.data[index*4 +2]
imageData.data[index*4 +3]

上面取出了 data 数组中连续相邻的四个值,这四个值分别代表了图像中第 index+1 个像素的红色、绿色、蓝色和透明度值的大小。

注意:index 从0 开始,图像中总共有 width * height 个像素,数组中总共保存了 width * height * 4 个数值

上下文对象 Context 有三个方法用来创建、读取和设置 ImageData 对象,他们分别是

createImageData(width, height):在内存中创建一个指定大小的 ImageData 对象(即像素数组),对象中的像素点都是黑色透明的,即rgba(0,0,0,0)

getImageData(x, y, width, height):返回一个 ImageData 对象,这个 IamgeData 对象中包含了指定区域的像素数组

putImageData(data, x, y):将 ImageData 对象绘制到屏幕的指定区域上

三、一个简单的图像处理例子

上面说了这么多,我们用了解的知识来玩玩图像编程,或许有一天我们就要在 Chrome 中玩 PhotoShop 了。

程序大概是这个样子的:

1、将一幅图片绘制到一个 canvas 元素上,为了不引发安全错误(Security_ERR:DOM EXCEPTION 18),我用的是我博客顶部的横幅背景图片。你要运行这个例子,可能需要改成自己的图片

2、有四个滑动条,分别代表 GRBA 四个分量

3、拖动滑动条,图像中对应的颜色分量就会增加或者减少

4、如果图像变成透明,就会显示 canvas 元素的背景,我把这个背景设置成了我的头像,呵呵。

思路:其实就是用 getImageData 方法,将你想改变的那一块区域的像素数组取出来,然后根据你拖动的滑动条和滑动条的数值,来更改那一块区域里所有像素对应颜色分量的值。处理完毕后再用 putImageData 方法绘制到画布上,就是这么简单。

下面是代码:

简单的图像处理



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><canvas id="test1" width="507" height="348" 
style="background-image:url(http://images.cnblogs.com/cnblogs_com/myqiao/262115/r_2204793492575248335.jpg)">你的浏览器不支持 <canvas>标签,
请使用 Chrome 浏览器 或者 FireFox 浏览器</canvas>

红色:<input type="range" min="1" max="100" onchange="colorChange(event,0)"/>

绿色:<input type="range" min="1" max="100" onchange="colorChange(event,1)"/>

蓝色:<input type="range" min="1" max="100" onchange="colorChange(event,2)"/>

透明:<input type="range" min="1" max="100" onchange="colorChange(event,3)"/>

<script type="text/javascript">

 //获取上下文对象

 var canvas = document.getElementById("test1");

 var ctx = canvas.getContext("2d");



 //画布的宽度和长度

 var width = parseInt(canvas.getAttribute("width"));

 var height = parseInt(canvas.getAttribute("height"));



 //装入图像

 var image = new Image();

 image.onload =imageLoaded;
 //顶部背景图片
 image.src = "/skins/Valentine/images/banner2.gif";



 //用来保存像素数组的变量

 var imageData=null;



 function imageLoaded() {

 // 将图片画到画布上

 ctx.drawImage(image, 0, 0);



 //取图像的像素数组

 imageData = ctx.getImageData(0, 0, width, height);

 }



 function colorChange(event,offset){

 imageLoaded();

 for (var y = 0; y < imageData.height; y++) {

  for (x = 0;x < imageData.width; x++) {

  //index 为当前要处理的像素编号

  var index = y * imageData.width + x;

  //一个像素占四个字节,即 p 为当前指针的位置

  var p = index * 4;

  //改变当前像素 offset 颜色分量的数值,offset 取值为0-3

  var color = imageData.data[p + offset] * event.target.value / 50; 

  // 颜色值限定在[0..255]

  color = Math.min(255, color); 

  //将改变后的颜色值存回数组

  imageData.data[p + offset]=color

  }

 }

 //
输出到屏幕 ctx.putImageData(imageData, 0, 0); } </script>

1318.png

四、绘制随机颜色的点

这个例子是在画布上随机选择一个点,然后再给他一个随机的颜色值,其实用到的方法和上面的例子大同小异,就是需求不同罢了。

下面是代码和程序实例:

随机颜色的点



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><canvas id="test2" width="300" height="300" style=" background-color: black">你的浏览器不支持 <canvas>标签,请使用 Chrome 浏览器 或者 FireFox 浏览器</canvas>

<input type="button" value="画随机点" onclick="interval=setInterval(randomPixel,1);" />

<input type="button" value="停止" onclick="clearInterval(interval);"/>

<input type="button" value="清除" onclick="clearCanvas();"/>

<script type="text/javascript">

 //获取上下文对象

 var canvas = document.getElementById("test2");

 var ctx = canvas.getContext("2d");



 //画布的宽度和长度

 var width = parseInt(canvas.getAttribute("width"));

 var height = parseInt(canvas.getAttribute("height"));



 var imageData = ctx.createImageData(width, height);



 function randomPixel(){

 var x= parseInt(Math.random()*width);

 var y= parseInt(Math.random()*height);

 var index = y * width + x;

 var p = index * 4;



 imageData.data[p + 0] = parseInt(Math.random() * 256);

 imageData.data[p + 1] = parseInt(Math.random() * 256);

 imageData.data[p + 2] = parseInt(Math.random() * 256);

 imageData.data[p + 3] =parseInt(Math.random() * 256);

 ctx.putImageData(imageData,0,0);

 }



 function clearCanvas(){

 ctx.clearRect(0,0,width,height);

 imageData = ctx.createImageData(width, height);

 }

</script>

热心网友 时间:2022-05-12 04:51

通过css控制

text-indent:20px;           表示缩进20像素

padding:20px;             表示内距20像素,可以拆分成padding-left,padding-right,padding-top,padding-bottom,分别对四个方向控制,基于他的parent元素

margin:20px;                表示外距20像素。跟padding类似,不过跟padding不同的padding会导致块被撑大,而margin会导致块偏移

position:absolute;left:10px;top:10px;         采用决定定位,基于父级以上(使用了定位方有效)绝对定位,left和top为偏移,同样还有right,bottom做四个方向的偏移控制

float:right;            块浮动,可选left,right。这个属性会将元素从同级元素的占位中浮起来,不占位,并基于父元素做漂浮到左边或右边,不占位,跟普通元素会重叠,但是跟同样带float的可以有体积碰撞行成排列对齐的作用。



color:red;           表示字体是红色。属性可以以常见的颜色单词,常用的采用RGB色值表示,比如#FFFFFF表示白色

热心网友 时间:2022-05-12 06:09

这个是css样式问题

margin,padding设置盒子宽高,

如果是决定定位的话可以用position

颜色color

热心网友 时间:2022-05-12 07:44

不知道你说的位置发生变化是指哪种, 用css的position定位或者加空白格 都可以改变文字位置。 改变颜色用css的color属性。追问怎么用CSS改改变位置,要居中的那种,就像打开百度的那种样式

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
QQ空间代码不用了。怎么回原? 怎样才能把我的QQ空间变回原样啊~~~(我乱用代码的后果~555555~~) 小的的意思是什么 ...中,硫元素的化合价最高的是( )A.SO2B.H2SO4C.H2SD.Na2SO ...中硫元素化合价相同( )A.S、SO2B.SO2、H2SO4C.H2S、H2SO4D.SO3... 下列硫的单质和化合物中,硫元素的化合价是+4的是( )A.SB.SO2C.H2SD... 下列化合物中,硫元素的化合价为+4价的是( )A.H2SB.SO2C.SO3D.H2SO 下列化合物中,硫元素的化合价为+4价的是( )A.CaSO4B.H2SC.Na2SO3D... ...元素的化合价为+4价的是( )A.SO2B.H2SC.SO3D.H2SO 梦幻西游:三界功绩有什么用?原来有这么多用处 HTML5中怎么设置字体颜色 巧克力很多人喜欢吃,但你知道适量吃黑巧克力有什么功效吗? oppo a9手机开关键坏了去修得多少时间多少钱? OPPO,手机开关键坏啦,换一个多少钱啊 我的手机OPPOR9开机键坏了修要多少钱 oppoa59s下面的那两个键坏了 手机店可以修得好吗?大概要多少钱? OPPOr17关机键用不了了 修大概多少钱 其他功能一切正常 就是关机键用不了了? oppor9sk的home键坏了修要多少钱? OPPO手机中间主键松了。修一下多少钱? OPPOA7手机音量键按不动维修要多少钱? oppo电源键失灵自修方法,如果要修需要多少钱 我的OPPOa57t下面两个按键失灵了,维修要多少钱? 中国移动报故障打什么电话 请问OPPOr9s home键摔坏了,修一下要多少钱? 移动宽带故障代码22002 oppo按键维修多少钱 oppoA55开关键坏了修要多少钱 移动网络故障怎么解决? oppor11指纹键坏了多少钱可以修好? Oppo手机下面的按键碎了,而且还掉了一块能看见下面的零件,上面的屏幕也有一点裂痕,这样修要多少钱_百度问一问 html5不用font怎么设置字体颜色? htmlhtml5我css中怎样能一行多个颜色以及居中还有字体为宋体? HTML5 怎么让文字位置发生变化,还有怎么改变字体颜色? HTML5不支持font,那么用什么定义文字的字体颜色 html中怎么设定input的占位符字体颜色 html5中header、footer等标签怎么用css控制呢? html5鼠标经过事改变按钮背景及字体颜色 HTML中CSS外部样式表 2020青春心向党为主题的内容有什么? 青春心向党,建功新时代为主题的征文 结合实际谈谈,如何让青春在新时代广阔天地中绽放? 青春心向党建功新时代的班级周报怎么写? - 信息提示 青春心向党,建功新时代演讲稿怎么写 关于青春心向党建功新时代的对联 青春心向党建功新时代学生会主题演讲 以“青春心向党,建功新时代”为主题有哪些题目。 不忘初心跟党走青春建功新时代,青春誓言征文100字 青春心向党,建功新时代手抄报,有没有人给一个大概轮廓。 “青春向党,声颂百年”有什么主题