小刘同学的第三十九篇博文
2018-06-24 01:28:20来源:未知 阅读 ()
今天基本上一天都在理工那边的教室里自习,状态还是相当好的,貌似是9点半关门。要是像我们学校一样10点关门就好了。。
上午的时间基本上都在优化homework5,下午稍微用了点时间调homework4。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>homework4</title> 6 <style> 7 html, body{ 8 margin: 0; 9 padding: 0; 10 width: 100%; 11 } 12 ul { 13 margin: 0; 14 padding: 0; 15 list-style: none; 16 } 17 .bg { 18 height: 100vh; 19 width: 100%; 20 display: none; 21 } 22 </style> 23 </head> 24 <body> 25 <!-- 26 /** 27 * 28 * @author: xiaoliu 29 * @type: NO.17-homework4 30 * @data: 2018-01-27 31 * @finished: 2018-01-29 32 * @optimized: 2018-01-31 33 */ 34 --> 35 <ul id="main"> 36 <li class="bg" id="one"></li> 37 <li class="bg" id="two"></li> 38 <li class="bg" id="three"></li> 39 <li class="bg" id="four"></li> 40 <li class="bg" id="five"></li> 41 <li class="bg" id="six"></li> 42 <li class="bg" id="seven"></li> 43 </ul> 44 <script> 45 window.onload = function () { 46 // count用来存放当前显示的li标签 47 var count = 0; 48 var bg = document.getElementsByTagName("li"); 49 // 初始化bgColor 50 bg[0].style.backgroundColor = "red"; 51 bg[1].style.backgroundColor = "orange"; 52 bg[2].style.backgroundColor = "yellow"; 53 bg[3].style.backgroundColor = "green"; 54 bg[4].style.backgroundColor = "cyan"; 55 bg[5].style.backgroundColor = "blue"; 56 bg[6].style.backgroundColor = "purple"; 57 // 显示默认标签 58 // propertypropertyproperty property 59 bg[count].style.display = "block"; 60 window.onmousewheel = function (event) { 61 if (event.wheelDelta < 0 && count < bg.length-1) { 62 // 如果滚轮的值为-120,就把标志往后移1位 63 count++; 64 // console.log("count :" + count) 65 } else if (event.wheelDelta > 0 &&count > 0) { 66 // 如果滚轮的值为120,就把标志往前移1位 67 count--; 68 } 69 70 bg[count].style.display = "block"; 71 for (var i = 0; i < bg.length; i++) { 72 //跳过当前count标志位,不让其none掉 73 //而且i不能超过7,i∈[0, 6] 74 if (i === count) { 75 i++; 76 // console.log("i :" + i) 77 } 78 // 等于7的时候前0~6总共的7个背景已经 79 if (i!= bg.length) { 80 bg[i].style.display = "none"; 81 } 82 } 83 } 84 } 85 </script> 86 </body> 87 </html>
关于这个count和i最后能取到7。。。其实下午卡住了很久,我本想的是不要那么多if的,然而最后还是没办法,i总是能取到7,后面的bg[i].style.display = "none";就总是报错,说越界了第8个元素没有定义。。。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>homewrok5</title> 6 <style> 7 html, body{ 8 margin: 0; 9 padding: 0; 10 width: 100%; 11 } 12 #box { 13 height: 200px; 14 width: 200px; 15 background-color: purple; 16 position: absolute; 17 } 18 </style> 19 </head> 20 <body> 21 <!-- 22 /** 23 * 24 * @author: xiaoliu 25 * @type: NO.17-homework5 26 * @data: 2018-01-29 27 * @finished: 2018-01-30 28 * @optimized: 2018-01-31 29 */ 30 --> 31 <div id="box"></div> 32 <script> 33 window.onload = function () { 34 var box = document.getElementById("box"); 35 box.onmouseover = function () { 36 box.style.backgroundColor = "#210038"; 37 } 38 // MX,MY用来存放鼠标初始值 39 var MX = 0; 40 var MY = 0; 41 // flag用来控制MX,MY只被记录一次 42 var flag = true; 43 // 鼠标被按下 44 box.onmousedown = function (event) { 45 // 源坐标 注意返回0的时候,返回的依然是string 0,而不是number 0, 46 var SL = parseInt(box.style.left == 0? 0: box.style.left); 47 var ST = parseInt(box.style.top == 0? 0: box.style.top); 48 console.log("SL :" + SL + " ST :" + ST) 49 // var SX = event.clientX + "px"; 50 // var SY = event.clientY + "px"; 51 // 首先记录鼠标在box上的相对位置 52 if (flag) { 53 MX = (event.clientX - SL) + "px"; 54 MY = (event.clientY - ST) + "px"; 55 flag = false; 56 } 57 // console.log(SL) 58 // console.log(ST) 59 // console.log(SX) 60 // console.log(SY) 61 box.onmousemove = function (event) { 62 // 目的坐标 63 var DX = event.clientX - parseInt(MX); 64 var DY = event.clientY - parseInt(MY); 65 box.style.left = DX + "px"; 66 box.style.top = DY + "px"; 67 /*console.log("MX = " + MX + " MY = " + MY) 68 console.log("DX = " + DX + " DY = " + DY)*/ 69 // 鼠标被抬起 70 box.onmouseup = function () { 71 flag = true; //改回true,以便下一次移动鼠标时重新定位MX,MY 72 // 鼠标抬起后,把box的坐标写死,不再随鼠标移动 73 box.onmousemove = function (event) { 74 box.style.left = DX + "px"; 75 box.style.top = DY + "px"; 76 } 77 } 78 } 79 } 80 box.onmouseout = function () { 81 box.style.backgroundColor = "purple"; 82 } 83 } 84 </script> 85 </body> 86 </html>
其实这里是没有搞懂的,不过为了做这个动画效果,用js真的相当复杂,应该是可以用canvas来做一个动画的,但是无奈才疏学浅,用js来写,特别是这个.left非常麻烦,强转的时候总是报NaN,不明白为什么,其实自己写了一段调试程序也是这个box.style.left第一次输出来就是空的,就算是CSS给它设定了left值,最后你用js输出来就是空的,不明白为什么。。。。。。。
总之就是非常坎坷的一天,终于是实现了这个鼠标拖拽移动,尽管有相当多的细节bug,比如鼠标移动快一点就会出现脱离box的情况,鼠标比box移动的更快,就跟不上box了,小毛病特别多。。。
相比于昨天好了很多,今天起码上午、下午、晚上都去自习室了,不过希望明天晚上回家的时候,能先先写完博客再去哔哩哔哩上看相声的。。。无奈自己总是抓不住最要紧的事儿。。。。。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:NW.js 简介与使用
- 小刘同学的第一百四十四篇博文 2018-06-24
- 小刘同学的第一百三十九篇博文 2018-06-24
- 小刘同学的第一百二十一篇博文 2018-06-24
- 小刘同学的第一百二十二篇博文 2018-06-24
- 小刘同学的第一百一十五篇博文 2018-06-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash