javascript
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.οnlοad=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.οnmοuseοver=function(){
? ? ? ? ? ? colorpanel.style.display="block";
? ? ? ? ? ? }
? ? ? ? ? ? ?colorbtn.οnmοuseοut=function(){
? ? ? ? ? ? colorpanel.style.display="none";
? ? ? ? ? ? }
? ? ? ? ? ? ?colorpanel.οnmοuseοver=function(){
? ? ? ? ? ? ? this.style.display="block";
? ? ? ? ? ? ?}
? ? ? ? ? ? ? colorpanel.οnmοuseοut=function(){
? ? ? ? ? ? ? this.style.display="none";
? ? ? ? ? ? ?}
? ? ? ? ? ? ? for(var i=0;i<colorpanel.children.length;i++){
? ? ? ? ? ? ? colorpanel.children[i].index=i;
? ? ? ? ? ? ? colorpanel.children[i].οnclick=function(){
? ? ? ? ? ? ? //鼠標點擊li切換類名來改變樣式
? ? ? ? ? ? ? clsname=classname[this.index];
? ? ? ? ? ? ? colorpanel.style.display="none";
? ? ? ? ? ? ? }
? ? ? ? ? ? ? }
? ? ? ? ? ? ? //定義默認字體大小為10px
? ? ? ? ? ? ? var WIDTH="10px";
? ? ? ? ? ? ? var HEIGHT="10px";
? ? ? ? ? ? ? //通過滑動range來改變字體大小
? ? ? ? ? ? ? ram.οnmοusemοve=function(){
? ? ? ? ? ? ? WIDTH=HEIGHT=ram.value+"px";
? ? ? ? ? ? ? ramnum.innerHTML="字體大小:"+WIDTH;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? //鼠標點擊屏幕,通過滑動鼠標不停創建div屬性節點,并且給它設置樣式
document.οnmοusedοwn=function(){
??document.οnmοusemοve=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.οnmοuseup=function(){
document.οnmοusemοve=null;
}
//當橡皮差按鈕被點擊,遍歷所有div并且把它們一一從父節點里面移除
eraser.οnclick=function(){
var oDiv=oBody.getElementsByTagName("div");
for(var i=0;i<oDiv.length;i++){
oBody.removeChild(oDiv[i]);
}
}
//以下為取消按鈕的冒泡事件,因為我們點擊按鈕是不能繪制div的
eraser.οnmοusedοwn=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
colorbtn.οnmοusedοwn=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
colorpanel.οnmοusedοwn=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
ram.οnmοusedοwn=function(event){
var ievent=event||window.event;
ievent.cancelBubble=true;
}
}
}
這是基于javascript的事件基礎寫的,比較簡易,其實還可以進一步進行優化。下面來看效果圖。
總結
以上是生活随笔為你收集整理的javascript开发简易画板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源时序数据库学习
- 下一篇: Cocos2d-X Box2D内容讲解