大约就是这样
使用hr标签实现了一下,使用Vue
实现的,当然如果想换成jquery
也很简单,只需要把我代码中的@click
事件用jquery
替换一下就可以了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<style>
hr {
border: none;
border-top: 3px solid black;
}
#xie,
#heng {
float: right;
}
#graph {
float: left;
}
</style>
</head>
<body>
<div id="graph">
length: <input type="text" v-model="len"> px<br>
degree: <input type="text" v-model="degree"><br>
<input type="button" value="绘制" @click="setVal"><br>
<hr id="xie" :style="xieStyle">
<hr id="heng" :style="hengStyle">
<input type="text">
</div>
<script>
var vm = new Vue({
el: "#graph",
data: {
degree: "",
len: "",
xieStyle: {
"width": "",
"transform": ""
},
hengStyle: {
"width": ""
}
},
methods: {
setVal() {
this.xieStyle["width"] = this.len + "px";
this.hengStyle["width"] = this.len + "px";
var offsetH = this.len / 2 * Math.sin(this.degree / 180 * Math.PI);
var offsetW = this.len / 2 - this.len / 2 * Math.cos(this.degree / 180 * Math.PI);
this.xieStyle["transform"] = "translate(" + -(offsetW + 1) + "px, " + offsetH + "px) rotate(" + this.degree + "deg)";
}
}
})
</script>
</body>
</html>
复制就能运行了,看看能看懂吗,看不懂也可以给你写个jquery
版本的
点击绘制,就能根据选的参数绘制了,如图:
改改样式就能很好看了