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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
IE本地存储userdata的一个bug说明
Jul 01 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
vue如何引用其他组件(css和js)
Apr 13 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
微信小程序实现日历效果
Dec 28 Javascript
小程序云开发之用户注册登录
May 18 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
JavaScript实现筛选数组
Mar 02 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Jquery插件写法笔记整理
2012/09/06 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
基于input动态模糊查询的实现方法
2017/12/12 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python中的hypot()方法使用简介
2015/05/18 Python
浅谈Python中的私有变量
2018/02/28 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 求10个数的平均数实例
2019/12/16 Python
python爬虫工具例举说明
2020/11/30 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Yahoo的PHP面试题
2014/05/26 面试题
this关键字的含义
2015/04/08 面试题
房屋改造计划书
2014/01/10 职场文书
单独二胎证明
2015/06/24 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python