javascript简易画板开发


Posted in Javascript onApril 12, 2020

本文实例为大家分享了制作javascript简易画板的方法,供大家参考,具体内容如下

html:

<body id="bodys">
<span id="eraser">
清除所有
</span>
<span id="colorbtn">
笔画颜色
</span>
<input type="range" name="ram" id="ram" min="1" max="20" step="1" value="10"/>
<label id="ramnum">字体大小:10px</label>
<ul id="colorpanel">
<li>黑色</li>
<li>红色</li>
<li>绿色</li>
<li>蓝色</li>
</ul>
</body>

CSS:

*{
margin: 0;
padding: 0;
 }
.box_black{
background-color: black;
position: absolute;
}
.box_red{
background-color: red;
position: absolute;
}
.box_green{
background-color: green;
position: absolute;
}
.box_blue{
background-color: blue;
position: absolute;
}
#eraser{
width: 80px;
height: 50px;
background-color: brown;
display: inline-block;
text-align: center;
line-height: 50px;
cursor: pointer;
}
#colorbtn{
width: 80px;
height: 50px;
background-color: tomato;
display: inline-block;
text-align: center;
line-height: 50px;
cursor: pointer;
}
#colorpanel{
width: 80px;
height: 200px;
list-style: none;
margin-left: 88px;
display: none;
}
#colorpanel>li{
width: 80px;
height: 50px;
text-align: center;
line-height: 50px;
background-color: aquamarine;
display: inline-block;
cursor: pointer;
}
#colorpanel>li:hover{
background-color: orange;
}

javascript:

window.onload=function(){

  //把类名存成一个数组
 var classname=["box_black","box_red","box_green","box_blue"];
 //默认类名为box_black
 var clsname=classname[0];
 var oBody=document.getElementById("bodys");
 var oDiv=oBody.getElementsByTagName("div");
 var eraser=document.getElementById("eraser");
 var colorbtn=document.getElementById("colorbtn");
 var colorpanel=document.getElementById("colorpanel");
 var ram=document.getElementById("ram");
 var ramnum=document.getElementById("ramnum");
  colorbtn.onmouseover=function(){
  colorpanel.style.display="block";
  }
  colorbtn.onmouseout=function(){
  colorpanel.style.display="none";
  }
  colorpanel.onmouseover=function(){
  this.style.display="block";
  }
  colorpanel.onmouseout=function(){
  this.style.display="none";
  }
  for(var i=0;i<colorpanel.children.length;i++){
  colorpanel.children[i].index=i;
  colorpanel.children[i].onclick=function(){
  //鼠标点击li切换类名来改变样式
  clsname=classname[this.index];
  colorpanel.style.display="none";
  }
  }
  //定义默认字体大小为10px
  var WIDTH="10px";
  var HEIGHT="10px";
  //通过滑动range来改变字体大小
  ram.onmousemove=function(){
  WIDTH=HEIGHT=ram.value+"px";
  ramnum.innerHTML="字体大小:"+WIDTH;
  }
  //鼠标点击屏幕,通过滑动鼠标不停创建div属性节点,并且给它设置样式
document.onmousedown=function(){
 document.onmousemove=function(event){
 var oevent=event||window.event;
 var scrolltop=document.documentElement.scrollTop||document.body.scrollTop;
 var scrollleft=document.documentElement.scrollLeft||document.body.scrollLeft;
 var box=document.createElement("div");
  box.className=clsname;
  box.style.width=WIDTH;
  box.style.height=HEIGHT;
  oBody.appendChild(box);
  box.style.left=scrollleft+oevent.clientX+"px";
  box.style.top=scrolltop+oevent.clientY+"px";
}
}
//当鼠标按键松开,注销鼠标滑动事件
document.onmouseup=function(){
document.onmousemove=null;
}
//当橡皮差按钮被点击,遍历所有div并且把它们一一从父节点里面移除
eraser.onclick=function(){
var oDiv=oBody.getElementsByTagName("div");
for(var i=0;i<oDiv.length;i++){
oBody.removeChild(oDiv[i]);
}
}
//以下为取消按钮的冒泡事件,因为我们点击按钮是不能绘制div的
eraser.onmousedown=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
colorbtn.onmousedown=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
colorpanel.onmousedown=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
ram.onmousedown=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
}

}

这是基于javascript的事件基础写的,比较简易,其实还可以进一步进行优化。下面来看效果图。

javascript简易画板开发

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
xss文件页面内容读取(解决)
Nov 28 Javascript
Jquery在指定DIV加载HTML示例代码
Feb 17 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
javascript定时器完整实例
Feb 10 Javascript
jQuery实现的可编辑表格完整实例
Jun 20 Javascript
AngularJS 过滤器的简单实例
Jul 27 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
如何写好你的JavaScript【推荐】
Mar 02 Javascript
angular实现IM聊天图片发送实例
May 08 Javascript
JS实现简单拖拽效果
Jun 21 Javascript
细说webpack6 Babel的使用详解
Sep 26 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 #Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 #Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 #Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 #Javascript
JavaScript高仿支付宝倒计时页面及代码实现
Oct 21 #Javascript
基于angularJS的表单验证指令介绍
Oct 21 #Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 #Javascript
You might like
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
PHP最常用的正则表达式
2017/02/13 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
Python的一些用法分享
2012/10/07 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
网站推广策划方案
2014/06/04 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
三潭印月的导游词
2015/02/12 职场文书
涨价通知怎么写
2015/04/23 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis
MySQL学习必备条件查询数据
2022/03/25 MySQL
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL