请老师检查,代码怎么修改能避免输入框只输入空格导致绘制不出文字的情况?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvas案例</title>
<style>
.content{
width: 1000px;
height: 285px;
margin: 100px auto;
}
.input-content{
width: 300px;
height: 248px;
background-color: #a4a19a;
padding-top: 37px;
float: left;
}
.text{
width: 255px;
height: 23px;
font-size: 10px;
background-color: #fff;
padding-left: 10px;
border: none;
border-radius: 12px;
outline: none;
margin: 0 18px 22px;
}
.submit{
width: 84px;
height: 23px;
font-size: 10px;
background-color: #232124;
border-radius: 12px;
border: none;
outline: none;
color: #fff;
margin-left: 108px;
cursor: pointer;
}
.canvas-content{
width: 700px;
height: 100%;
background-color: #f0e9d6;
float: left;
}
.card{
margin: 75px 100px;
}
</style>
</head>
<body>
<div class="content">
<div class="input-content">
<input type="text" class="text" placeholder="姓名" id="name" autocomplete="off" maxlength="6">
<input type="text" class="text" placeholder="地址" id="adds" autocomplete="off" maxlength="10">
<input type="text" class="text" placeholder="职业" id="work" autocomplete="off" maxlength="10">
<input type="text" class="text" placeholder="口号" id="slogan" autocomplete="off" maxlength="10">
<button class="submit" id="subBtn">生成名片</button>
</div>
<div class="canvas-content">
<canvas class="card" id="canvas" width="500px" height="76px">
您的浏览器不支持canvas
</canvas>
</div>
</div>
<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext('2d');
var btn = document.getElementById('subBtn'),
nameNode = document.getElementById('name'),
addsNode = document.getElementById('adds'),
workNode = document.getElementById('work'),
sloganNode = document.getElementById('slogan');
function draw() {
var nameStr = nameNode.value || '请输入姓名',
addsStr = addsNode.value || '请输入地址',
workStr = workNode.value || '请输入职业',
sloganStr = sloganNode.value || '请输入口号';
//创建canvas渐变色背景
var linearGradient = ctx.createLinearGradient(0,38,500,38);
linearGradient.addColorStop(0,'#000');
linearGradient.addColorStop(.6,'#000');
linearGradient.addColorStop(1,'grey');
ctx.fillStyle = linearGradient;
ctx.fillRect(0,0,canvas.width,canvas.height);
//设置图片
var img = new Image();
img.src = 'http://img1.sycdn.imooc.com/climg//59859f4d00014f1503000100.jpg';
img.onload = function () {
ctx.drawImage(img,20,11,80,81,0,0,78,78);
}
//设置文字
ctx.fillStyle = '#fff';
ctx.textAlign = 'left';
ctx.textBaseline = 'top';
ctx.save();
ctx.font = 'bold 22px 微软雅黑';
ctx.fillText(nameStr,93,10);
ctx.restore();
ctx.save();
ctx.font = 'bold 14px 微软雅黑';
ctx.fillText(addsStr,93,37);
ctx.fillText(workStr,93,56);
var nameStrWidth = ctx.measureText(nameStr).width,
sloganPositionX = 245,
sloganX = nameStrWidth + sloganPositionX;
//移动中心点 设置旋转 设置旋转文字
ctx.translate(sloganX,37);
ctx.rotate(- Math.PI / 30);
ctx.fillText(sloganStr,0,0);
ctx.restore();
}
draw();
//设置btn点击事件
btn.onclick = function () {
ctx.clearRect(0, 0, canvas.width, canvas.height);
draw();
};
</script>
</body>
</html>16
收起
正在回答
2回答
同学你好,若是使用多个空格的话,可以使用正则,用正则将空格替换为空(什么都没有),然后什么都没有在if判断的时候会为假,例:

祝学习愉快~
3.WebAPP开发与小程序
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星