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 相关文章推荐
pjblog中的UBBCode.js
Apr 25 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
简单实现node.js图片上传
Dec 18 Javascript
用js实现before和after伪类的样式修改的示例代码
Sep 07 Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
JavaScript布尔运算符原理使用解析
May 06 Javascript
在react-antd中弹出层form内容传递给父组件的操作
Oct 24 Javascript
React Native项目框架搭建的一些心得体会
May 28 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性能优化 产生高度优化代码
2011/07/22 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
angularJS开发注意事项
2018/05/26 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python xpath获取页面注释的方法
2019/01/14 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python  logging日志打印过程解析
2019/10/22 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
木马的传播途径主要有哪些
2016/04/08 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
大二学年个人总结
2015/03/03 职场文书
医院合作意向书范本
2015/05/08 职场文书
项目备案申请报告
2015/05/15 职场文书
不同意离婚答辩状
2015/05/22 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL