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 相关文章推荐
JavaScript游戏之优化篇
Nov 08 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
js中的布尔运算符使用介绍
Nov 20 Javascript
AngularJS中$http服务常用的应用及参数
Aug 22 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 Javascript
使vue实现jQuery调用的两种方法
May 12 jQuery
Jquery异步上传文件代码实例
Nov 13 jQuery
Echarts实现单条折线可拖拽效果
Dec 19 Javascript
vue+axios 拦截器实现统一token的案例
Sep 11 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
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
php header函数的常用http头设置
2015/06/25 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
详解js闭包
2014/09/02 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
python通过smpt发送邮件的方法
2015/04/30 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
致800米运动员广播稿
2014/02/16 职场文书
大学班级文化建设方案
2014/05/06 职场文书
教师专业自荐信
2014/05/31 职场文书
党支部审查意见
2015/06/02 职场文书
十月围城观后感
2015/06/08 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS