惠峰 2019-11-07 11:32 采纳率: 37.5%
浏览 625

HTML里为啥input和canvas元素水平放在一行没有对齐,要写一个验证码,附上代码

<!DOCTYPE html>





Document



验证码


<br> /*生成4位随机数*/<br> function rand() {<br> var str = &quot;abcdefghijklmnopqrstuvwxyz0123456789&quot;;<br> var arr = str.split(&quot;&quot;);<br> var validate = &quot;&quot;;<br> var ranNum;<br> for (var i = 0; i &lt; 4; i++) {<br> ranNum = Math.floor(Math.random() * 36); //随机数在[0,35]之间<br> validate += arr[ranNum];<br> }<br> return validate;<br> }<br> /*干扰线的随机x坐标值*/<br> function lineX() {<br> var ranLineX = Math.floor(Math.random() * 90);<br> return ranLineX;<br> }<br> /*干扰线的随机y坐标值*/<br> function lineY() {<br> var ranLineY = Math.floor(Math.random() * 40);<br> return ranLineY;<br> }<br> function clickChange() {<br> var mycanvas = document.getElementById(&#39;mycanvas&#39;);<br> var cxt = mycanvas.getContext(&#39;2d&#39;);<br> cxt.fillStyle = &#39;#000&#39;;<br> cxt.fillRect(0, 0, 90, 40);<br> /*生成干扰线20条*/<br> for (var j = 0; j &lt; 20; j++) {<br> cxt.strokeStyle = &#39;#fff&#39;;<br> cxt.beginPath(); //若省略beginPath,则每点击一次验证码会累积干扰线的条数<br> cxt.moveTo(lineX(), lineY());<br> cxt.lineTo(lineX(), lineY());<br> cxt.lineWidth = 0.5;<br> cxt.closePath();<br> cxt.stroke();<br> }<br> cxt.fillStyle = &#39;red&#39;;<br> cxt.font = &#39;bold 20px Arial&#39;;<br> cxt.fillText(rand(), 25, 25); //把rand()生成的随机数文本填充到canvas中<br><br> }<br> clickChange();<br> /*点击验证码更换*/<br> mycanvas.onclick = function (e) {<br> e.preventDefault(); //阻止鼠标点击发生默认的行为<br> clickChange();<br> };<br>

  • 写回答

2条回答

  • 拾年丶不久 2019-11-07 11:51
    关注

    对不齐你放页面的代码,放JS没看头,啥都看不出来

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧