Js实现彩虹文字

在文本框中输入文字,点击提交按钮或按回车键+Ctrl键实现将文字添加在页面上,并采用彩虹颜色的形式 

<!DOCTYPE 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>Document</title>
</head>
<body>
    <div id="box">

    </div>
    <input type="text" name="" id="txt">
    <input type="button" value="提交" id="btn">
    <script>
        //获取元素对象
        var oDiv=document.getElementById("box");
        var oTxt=document.getElementById("txt");
        var oBtn=document.getElementById("btn");
        //设置几种颜色
        var Color=['#0000ff','#c0c0c0','#ff0000','#00ff00'];
           
        function inputMessage(){
            var str=oTxt.value;
            var newStr='';
            var index=0;
            for(var i=0,len=str.length;i<len;i++){
                //把oTxt中的字符串加到newStr中
                newStr+='<span style=background:'+Color[index++%Color.length]+'>'+str.charAt(i)+"</span>";
            }
           //把newStr加到div中
            oDiv.innerHTML+=newStr;
            //清空文本框内容
            oTxt.value=null;
        }  
         //点击提交按钮
        oBtn.onclick=function(){
          inputMessage();
        }   

        document.onkeydown=function(evt){
            var e=evt||window.event;
            //按下Enter按键和Ctrl按键
            if(e.keyCode==13&&e.ctrlKey){
                inputMessage();
            }
        }
    </script>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中可以使用Shader实现彩虹效果。下面是一个简单的示例: 首先,需要在Unity中创建一个新的Shader,然后在Shader中添加以下代码: ``` Shader "Custom/Rainbow" { Properties { _MainTex ("Texture", 2D) = "white" {} _RainbowColor ("Rainbow Color", Color) = (1,1,1,1) _RainbowWidth ("Rainbow Width", Range(0, 1)) = 0.5 _Speed ("Speed", Range(-5, 5)) = 0.5 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; float4 _RainbowColor; float _RainbowWidth; float _Speed; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag (v2f i) : SV_Target { float4 col = tex2D(_MainTex, i.uv); float time = _Time.y * _Speed; float4 rainbow = sin(i.uv.y * 6.2831 + time) * 0.5 + 0.5; rainbow = lerp(rainbow, 1 - rainbow, _RainbowWidth); col.rgb = lerp(col.rgb, _RainbowColor.rgb, rainbow.r); return col; } ENDCG } } } ``` 在这个代码中,我们定义了一个新的Shader,其中包括了4个属性:_MainTex(纹理)、_RainbowColor(彩虹颜色)、_RainbowWidth(彩虹宽度)和_Speed(速度)。 在SubShader中,我们定义了一个Pass,在Pass中,我们通过vert函数将顶点位置和纹理坐标传递给Shader,然后在frag函数中,我们使用tex2D函数获取纹理颜色,并使用sin函数实现彩虹效果。最后,我们通过lerp函数将彩虹效果和纹理颜色混合在一起,得到最终的颜色。 在Unity中,我们可以将这个Shader应用到一个材质上,并将材质应用到一个对象上,从而实现彩虹效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值