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 相关文章推荐
利用JS解决ie6不支持max-width,max-height问题的方法
Jan 02 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
JQuery中ajax方法访问web服务实例
Jul 18 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
80%应聘者都不及格的JS面试题
Mar 21 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
微信小程序实现图片上传功能
May 28 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
javascript实现移动端红包雨页面
Jun 23 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
安装APACHE
2007/01/15 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
JavaScript实现五子棋小游戏
2020/10/26 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
使用Python3制作TCP端口扫描器
2017/04/17 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
销售总监工作职责
2013/11/21 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
常务副总经理任命书
2014/06/05 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
努力工作保证书
2015/02/28 职场文书
安全保证书格式
2015/02/28 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书