DOM—分时问候并显示不同图片案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. img {
  10. width: 300px;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <img src="/img/img/x.gif" alt="">
  16. <div>上午好</div>
  17. <script>
  18. // 根据系统不同时间来判断,所以需要用到日期内置对象Date
  19. // 利用多分支语句来设置不同的图片
  20. // 需要一个图片,并且根据时间修改图片,就需要用到操作元素src属性
  21. // 需要一个div元素,显示不同问候语,修改元素内容即可
  22. //1.获取元素
  23. var img = document.querySelector('img')
  24. var div = document.querySelector('div')
  25. //2.获得当前小时数
  26. var date = new Date()
  27. var h = date.getHours()
  28. //3.判断小时数来修改图片和文字信息
  29. if(h < 12){
  30. img.src = "/img/img/x.gif"
  31. div.innerHTML ='上午好'
  32. }else if(h < 18){
  33. img.src = "/img/img/x.gif"
  34. div.innerHTML = '下午好'
  35. }else{
  36. img.src = "/img/img/x.gif"
  37. div.innerHTML = '晚上好'
  38. }
  39. </script>
  40. </body>
  41. </html>



DOM—操作属性控制电灯开关

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <img src="/img/off.gif" alt="">
  11. <script>
  12. //1--获取img元素对象
  13. var img = document.querySelector('img')
  14. //定义一个标记变量
  15. var flag = false //灯灭了,false代表灯是灭的,跟灯的状态保持一致
  16. /*
  17. 2--调用方法操作元素的属性
  18. light.src = '/img/on.gif' //设置src的属性的值
  19. var str = light.src //获取src属性的值
  20. console.log(str);//http://127.0.0.1:5500/img/on.gif
  21. */
  22. //2--绑定事件
  23. img.onclick = function(){
  24. if(flag == false){
  25. img.src = "/img/on.gif"
  26. flag = true //灯亮了,将flag设置为true
  27. }else{
  28. img.src = "/img/off.gif"
  29. flag = false //灯灭了,将flag设置为false
  30. }
  31. }
  32. </script>
  33. </body>
  34. </html>


DOM—仿京东搜索框案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. input {
  10. color: #999;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <input type="text" value="婴幼儿奶粉">
  16. <script>
  17. // 需求:
  18. // 文本框获得焦点时, 文字颜色变浅, 文本框的内容清空
  19. // 文本框失去焦点时, 颜色恢复, 文本框为空时, 提示内容
  20. //获得文本框
  21. var text = document.querySelector('input')
  22. //添加获得焦点事
  23. text.onfocus = function(){
  24. /* console.log('获得焦点'); */
  25. text.style.color='#333'
  26. if(text.value='婴幼儿奶粉')
  27. text.value=''
  28. }
  29. //添加失去焦点
  30. text.onblur = function(){
  31. /* console.log('失去焦点'); */
  32. text.style.color='#999'
  33. if(text.value ==''){
  34. text.value='婴幼儿奶粉'
  35. }
  36. }
  37. </script>
  38. </body>
  39. </html>

DOM—书架案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <!--这本书名为<<abc>>,zhangsan编著的书,折扣为:0.8折,折扣后价格为:96-->
  7. </head>
  8. <body>
  9. 书名:<input type="text" id="bookname" name="bookname" ><br/>
  10. 作者:<input type="text" id="bookauthor" name="bookauthor" ><br/>
  11. 价格:<input type="text" id="bookprice" name="bookprice" ><br/>
  12. 折扣:<input type="text" id="booksale" name="booksale" ><br/>
  13. <input type="button" id="totalBtn" value="计算折扣价">
  14. <script>
  15. //获取计算折扣的按钮对象
  16. var btn = document.getElementById("totalBtn");
  17. //添加点击事件
  18. btn.onclick = function () {
  19. //获取文本框里面的值
  20. //方法一:通过id
  21. /*var bookname = document.getElementById("bookname").value;
  22. var bookauthor = document.getElementById("bookauthor").value;
  23. var bookprice = document.getElementById("bookprice").value;
  24. var booksale = document.getElementById("booksale").value;*/
  25. //方法二:通过TagName
  26. /* var bookname = document.getElementsByTagName("input")[0].value;
  27. var bookauthor = document.getElementsByTagName("input")[1].value;
  28. var bookprice = document.getElementsByTagName("input")[2].value;
  29. var booksale = document.getElementsByTagName("input")[3].value; */
  30. //方法三:querySelector()
  31. var bookname = document.querySelector("#bookname").value;
  32. var bookauthor = document.querySelector("#bookauthor").value;
  33. var bookprice = document.querySelector("#bookprice").value;
  34. var booksale = document.querySelector("#booksale").value;
  35. //计算
  36. var price = bookprice * booksale;
  37. //拼接
  38. var s = "这本书名为<<"+bookname+">>,"+bookauthor+"编著的书,折扣为:"+booksale+"折,折扣后价格为:"+price;
  39. //弹出
  40. alert(s)
  41. }
  42. </script>
  43. </body>
  44. </html>

DOM—留言板

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. * {
  9. margin: 0;
  10. padding: 0;
  11. }
  12. body {
  13. padding: 100px;
  14. }
  15. textarea {
  16. width: 200px;
  17. height: 100px;
  18. border: 1px solid skyblue;
  19. outline: none;
  20. resize: none;
  21. }
  22. ul {
  23. margin-top: 40px;
  24. }
  25. li {
  26. width: 300px;
  27. margin: 10px 0;
  28. background-color: blueviolet;
  29. color: #fff;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <textarea></textarea>
  35. <button>发布</button>
  36. <ul></ul>
  37. <script>
  38. //提示会用到createElement方法 和 insertBefore方法
  39. //创建一个元素对象
  40. var ul = document.createElement('ul')
  41. //获取DOM元素对象
  42. var textarea= document.querySelector('textarea')
  43. var button= document.querySelector('button')
  44. var ul= document.querySelector('ul')
  45. //给btn添加点击事件
  46. button.addEventListener('click',function(){
  47. //判断:如果文本域中没有内容,弹出提示框并结束代码
  48. if(textarea.value == ''){
  49. alert('请输入内容')
  50. return//结束内容
  51. }
  52. //创建ul元素
  53. var li = document.createElement('li')
  54. //将文本域中的内容赋给li元素
  55. li.innerHTML = textarea.value
  56. //将li添加到ul中
  57. //ul.appendChild(li)//在父级元素的子元素后面追加元素
  58. ul.insertBefore(li,ul.children[0])//在父级元素的子元素前面
  59. //每次添加结束之后清空文本域中的内容
  60. textarea.value=''
  61. })
  62. </script>
  63. </body>
  64. </html>

BOM—发送短信

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. 手机号: <input class="ipt" type="text" /> <button class="btn">发送</button>
  10. <script>
  11. //获得
  12. var ipt = document.querySelector('.ipt')
  13. var btn = document.querySelector('.btn')
  14. //定义一个计数器
  15. var count = 3
  16. //添焦
  17. btn.addEventListener('click',function(){
  18. //1.禁用按钮
  19. btn.disabled = true
  20. //2.启动定时器
  21. var timer = setInterval(function(){
  22. //4.当count的值减到0的时候,结束定时,恢复按钮的状态
  23. if(count<=0){
  24. clearInterval(timer)
  25. btn.disabled=false
  26. btn.innerHTML='发送'
  27. count=3
  28. return
  29. }
  30. //3.倒计时时间显示在按钮上
  31. btn.innerHTML = count +'秒重试'
  32. count--
  33. },1000)
  34. })
  35. </script>
  36. </body>
  37. </html>

BOM—5秒后自动跳转页面

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>自动跳转</title>
  6. <style>
  7. p{
  8. text-align: center;
  9. }
  10. span{
  11. color:red;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <p>
  17. <span id="time">5</span>秒之后,自动跳转到首页...
  18. </p>
  19. <script>
  20. /*
  21. 分析:
  22. 1.倒计时读秒效果实现
  23. 1.1 定义一个方法,获取span标签,修改span标签体内容,时间--
  24. 1.2 定义一个定时器,1秒执行一次该方法
  25. 2.在方法中判断时间如果<= 0 ,则跳转到首页
  26. */
  27. var second = 5
  28. function showTime(){
  29. second--;
  30. //判断
  31. if(second<=0){
  32. location.href='http://taobao.com'
  33. }
  34. //获取span标签
  35. var time = document.querySelector('#time')
  36. time.innerHTML=second
  37. }
  38. setInterval(showTime,1000)
  39. </script>
  40. </body>
  41. </html>


DOM—动态表格

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>动态表格</title>
  6. <style>
  7. table{
  8. border: 1px solid;
  9. margin: auto;
  10. width: 500px;
  11. }
  12. td,th{
  13. text-align: center;
  14. border: 1px solid;
  15. }
  16. div{
  17. text-align: center;
  18. margin: 50px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div>
  24. <input type="text" id="name" placeholder="请输入姓名" autocomplete="off">
  25. <input type="text" id="age" placeholder="请输入年龄" autocomplete="off">
  26. <input type="button" value="添加" id="add">
  27. </div>
  28. <table id="tb">
  29. <caption>学生信息表</caption>
  30. <tr>
  31. <th>姓名</th>
  32. <th>年龄</th>
  33. <th>操作</th>
  34. </tr>
  35. <tr>
  36. <td>张三</td>
  37. <td>23</td>
  38. <td><a href="JavaScript:void(0);" onclick="drop(this)">删除</a></td>
  39. </tr>
  40. <tr>
  41. <td>李四</td>
  42. <td>24</td>
  43. <td><a href="JavaScript:void(0);" onclick="drop(this)">删除</a></td>
  44. </tr>
  45. </table>
  46. </body>
  47. <script>
  48. //一、添加功能
  49. //1.为添加按钮绑定单击事件
  50. document.getElementById("add").onclick = function(){
  51. //2.创建行元素
  52. let tr = document.createElement("tr");
  53. //3.创建3个单元格元素
  54. let nameTd = document.createElement("td");
  55. let ageTd = document.createElement("td");
  56. let deleteTd = document.createElement("td");
  57. //4.将td添加到tr中
  58. tr.appendChild(nameTd);
  59. tr.appendChild(ageTd);
  60. tr.appendChild(deleteTd);
  61. //5.获取输入框的文本信息
  62. let name = document.getElementById("name").value;
  63. let age = document.getElementById("age").value;
  64. //6.将2个文本元素添加到td中
  65. nameTd.innerHTML=name;
  66. ageTd.innerHTML=age;
  67. //8.创建超链接元素和显示的文本以及添加href属性
  68. let a = document.createElement("a");
  69. a.setAttribute("href","JavaScript:void(0);");
  70. a.setAttribute("onclick","drop(this)");
  71. a.innerHTML='删除';
  72. //9.将超链接元素添加到td中
  73. deleteTd.appendChild(a);
  74. //10.获取table元素,将tr添加到table中
  75. let table = document.getElementById("tb");
  76. table.appendChild(tr);
  77. }
  78. //二、删除的功能
  79. //1.为每个删除超链接标签添加单击事件的属性
  80. //2.定义删除的方法
  81. function drop(obj){
  82. //3.获取table元素
  83. let table = obj.parentElement.parentElement.parentElement;
  84. //4.获取tr元素
  85. let tr = obj.parentElement.parentElement;
  86. //5.通过table删除tr
  87. table.removeChild(tr);
  88. }
  89. </script>
  90. </html>

BOM—抽奖案例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <span id="layer">000000</span>
  9. <input id="btn" type="button" value='生成随机数'/>
  10. <script>
  11. //生成随机数 范围是 [100000-999999]
  12. //Math.floor(Math.random()*(max-min + 1)) + min;
  13. //999999-100000=899999+1=900000
  14. /*var num = Math.floor(Math.random()*(900000)) + 100000;
  15. alert(num)*/
  16. /*
  17. 1,定义一个方法,不断的修改span的标签体的值
  18. 2,获取按钮对象,添加点击事件
  19. 3,在事件中,点击开启定时,再点击关闭定时
  20. */
  21. //定义一个方法,不断的修改span的标签体的值
  22. function startRoll() {
  23. //获取span标签对象
  24. var span = document.getElementById("layer");
  25. //修改标签体的值
  26. span.innerHTML = Math.floor(Math.random()*(900000)) + 100000;
  27. }
  28. //获取按钮对象
  29. var btn = document.getElementById("btn");
  30. //设置标记,来切换
  31. var flag = false;
  32. //定义变量,保存定时器的id
  33. var id;
  34. //添加点击事件
  35. btn.onclick = function () {
  36. if (flag){
  37. //关闭定时
  38. clearInterval(id);
  39. flag = false;
  40. }else {
  41. //启动定时
  42. id = setInterval("startRoll()",10)
  43. flag = true;
  44. }
  45. }
  46. </script>
  47. </body>
  48. </html>

offset动画固定缓慢向右移动原理

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. div{
  10. width: 150px;
  11. height: 150px;
  12. background-color: red;
  13. position: absolute;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div></div>
  19. <script>
  20. //1--获得盒子当前位置
  21. //2--让盒子在当前位置上+1个移动距离
  22. //3--利用定时器不断重复操作
  23. //4--加一个结束定时器的条件
  24. //5--element.style.left需要添加定位才能实现功能
  25. var div = document.querySelector('div')
  26. var timer = setInterval(function(){
  27. if(div.offsetLeft >= 400){
  28. clearInterval(timer);
  29. }
  30. div.style.left = div.offsetLeft + 1 +'px';
  31. },30);
  32. </script>
  33. </body>
  34. </html>