BOM+DOM案例——阻止链接跳转,div滚动条,元素的隐藏方式,字符串拼接

简介: BOM+DOM案例——阻止链接跳转,div滚动条,元素的隐藏方式,字符串拼接

阻止超链接跳转


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
</head>
<body>
<a href="http://www.baidu.com" id="ak">百度</a>
<script src="common.js"></script>
<script>
  my$("ak").onclick=function (e) {
    // 方法一
    // alert("被点了");
    // 方法二
    // return false;
    // 方法三
    window.event.preventDefault();//阻止浏览器的默认的事件
  };
</script>
</body>
</html>


div的滚动条案例


<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    .box {
      width: 300px;
      height: 500px;
      border: 1px solid red;
      margin: 100px;
      position: relative;
      overflow: hidden;
    }
    .content {
      padding: 5px 18px 5px 5px;
      position: absolute;
      top: 0;
      left: 0;
    }
    .scroll {
      width: 18px;
      height: 100%;
      position: absolute;
      top: 0;
      right: 0;
      background-color: #eee;
    }
    .bar {
      height: 100px;
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background-color: red;
      border-radius: 10px;
      cursor: pointer;
    }
  </style>
</head>
<body>
<div class="box" id="box">
  <div class="content" id="content">
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
    <div>大鹏一日同风起,扶摇直上九万里</div>
  </div><!--文字内容-->
  <div id="scroll" class="scroll"><!--装滚动条的层-->
    <div class="bar" id="bar"></div><!--滚动条-->
  </div>
</div>
<script src="common.js"></script>
<script>
  //获取需要的元素
  //最外面的div
  var box = my$("box");
  //文字div
  var content = my$("content");
  //装滚动条的div---容器
  var scroll = my$("scroll");
  //滚动条
  var bar = my$("bar");
  //设置滚动条的高度
  //滚动条的高/装滚动条的div的高=box的高/文字div的高
  //滚动条的高=装滚动条的div的高*box的高/文字div的高
  var height = scroll.offsetHeight * box.offsetHeight / content.offsetHeight;
  bar.style.height = height + "px";
  //移动滚动条
  bar.onmousedown = function (e) {
    var spaceY = e.clientY - bar.offsetTop;
    document.onmousemove = function (e) {//移动事件
      var y = e.clientY - spaceY;
      y=y<0?0:y;//最小值
      y=y>scroll.offsetHeight-bar.offsetHeight?scroll.offsetHeight-bar.offsetHeight:y;
      bar.style.top = y + "px";
      //设置鼠标移动的时候,文字不被选中
      window.getSelection? window.getSelection().removeAllRanges():document.selection.empty();
      //滚动条的移动距离/文字div的移动距离=滚动条最大的移动距离/文字div的最大移动距离
      //文字div的移动距离=滚动条的移动距离*文字div的最大移动距离/滚动条最大的移动距离
      var moveY=y*(content.offsetHeight-box.offsetHeight)/(scroll.offsetHeight-bar.offsetHeight);
      //设置文字div的移动距离
      content.style.marginTop=-moveY+"px";
    };
  };
  document.onmouseup=function () {
    //鼠标抬起的时候,把移动事件干掉
    document.onmousemove=null;
  };
</script>
</body>
</html>


元素隐藏的几种方式


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    div{
      width: 300px;
      height: 200px;
      border:1px solid red;
    }
  </style>
</head>
<body>
<input type="button" value="显示效果" id="btn"/>
<div id="dv"></div>哈哈
<script src="common.js"></script>
<script>
  document.getElementById("btn").onclick=function () {
    //隐藏div
    //不占位
    //my$("dv").style.display="none";
    //占位
    //my$("dv").style.visibility="hidden";
    //占位
    //my$("dv").style.opacity=0;
    //占位
    //my$("dv").style.height="0px";
    //my$("dv").style.border="0px solid red";
  };
</script>
</body>
</html>


table隔行变色


<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }
    .wrap {
      width: 500px;
      margin: 100px auto 0;
    }
    table {
      border-collapse: collapse;
      border-spacing: 0;
      border: 1px solid #c0c0c0;
      width: 500px;
      cursor: pointer;
    }
    th,
    td {
      border: 1px solid #d0d0d0;
      color: #404060;
      padding: 10px;
    }
    th {
      background-color: #09c;
      font: bold 16px "微软雅黑";
      color: #fff;
    }
    td {
      font: 14px "微软雅黑";
    }
    tbody tr {
      background-color: pink;
    }
  </style>
</head>
<body>
<div class="wrap">
  <table>
    <thead>
    <tr>
      <th>序号</th>
      <th>姓名</th>
      <th>课程</th>
      <th>成绩</th>
    </tr>
    </thead>
    <tbody id="j_tb">
    <tr>
      <td>
        1
      </td>
      <td>中爱心</td>
      <td>语文</td>
      <td>100</td>
    </tr>
    <tr>
      <td>
        2
      </td>
      <td>奥语</td>
      <td>日语</td>
      <td>100</td>
    </tr>
    <tr>
      <td>
        3
      </td>
      <td>枫林晚</td>
      <td>营销学</td>
      <td>100</td>
    </tr>
    <tr>
      <td>
        4
      </td>
      <td>芙蓉妹妹</td>
      <td>数学</td>
      <td>10</td>
    </tr>
    <tr>
      <td>
        5
      </td>
      <td>性之助</td>
      <td>英语</td>
      <td>100</td>
    </tr>
    <tr>
      <td>
        6
      </td>
      <td>莫迪卡</td>
      <td>体育</td>
      <td>100</td>
    </tr>
    <tr>
      <td>
        7
      </td>
      <td>阿拉蕾</td>
      <td>体育</td>
      <td>100</td>
    </tr>
    </tbody>
  </table>
</div>
<script src="common.js"></script>
<script>
  //先获取所有的行
  var trs = my$("j_tb").getElementsByTagName("tr");
  for (var i = 0; i < trs.length; i++) {
    trs[i].style.backgroundColor = i % 2 == 0 ? "red" : "yellow";
    //鼠标进入
    trs[i].onmouseover = mouseoverHandle;
    //鼠标离开
    trs[i].onmouseout = mouseoutHandle;
  }
  //当鼠标进入的时候,先把设置后的颜色保存起来,等到鼠标离开再恢复即可
  var lastColor = "";
  function mouseoverHandle() {//鼠标进入
    lastColor = this.style.backgroundColor;
    this.style.backgroundColor = "green";
  }
  function mouseoutHandle() {//鼠标离开
    this.style.backgroundColor = lastColor;
  }
</script>
</body>
</html>


字符串拼接


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
</head>
<body>
<input type="button" value="拼接吧" id="btn"/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<script src="common.js"></script>
<script>
  //  var str="abcef";
  //  console.log(str[2]);
  //  str[2]="H";
  //  console.log(str);
  //字符串特性:不可变性
  //点击按钮实现拼接
  //  document.getElementById("btn").οnclick=function () {
  //    var str="";
  //    //获取所有的文本框
  //    var inputs=document.getElementsByTagName("input");
  //    //每个文本框的value属性值
  //    for(var i=0;i<inputs.length-1;i++){
  //      if(inputs[i].type!="button"){
  //        str+=inputs[i].value+"|";
  //      }
  //    }
  //    console.log(str+inputs[inputs.length-1].value);
  //  };
  //推荐使用数组的方式拼接大量的字符串
  document.getElementById("btn").onclick = function () {
    var str = [];
    //获取所有的文本框
    var inputs = document.getElementsByTagName("input");
    //每个文本框的value属性值
    for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].type != "button") {
        str.push(inputs[i].value);
      }
    }
    console.log(str.join("|"));//字符串
  };
</script>
</body>
</html>
相关文章
|
2天前
|
前端开发 JavaScript
前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)
本文介绍了如何在前端通过不同的方法获取DOM元素,包括getElementById、getElementsByTagName、getElementsByClassName、querySelector和querySelectorAll。
12 3
|
1天前
|
XML 缓存 JavaScript
提升对前端的认知,不得不了解Web API的DOM和BOM
该文章强调了在前端开发中理解和掌握DOM(文档对象模型)和BOM(浏览器对象模型)的重要性,并介绍了它们的相关操作和应用。
提升对前端的认知,不得不了解Web API的DOM和BOM
|
1天前
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
2天前
|
JavaScript 前端开发
前端基础(十)_Dom自定义属性(带案例)
本文介绍了DOM自定义属性的概念和使用方法,并通过案例展示了如何使用自定义属性来控制多个列表项点击变色的独立状态。
10 0
前端基础(十)_Dom自定义属性(带案例)
|
4天前
|
JavaScript
Vue3基础(十wu)___ref获取原生dom元素
本文介绍了Vue3中使用`ref`来获取和操作原生DOM元素的方法,通过示例展示了如何通过`.value`改变元素的样式。
12 0
Vue3基础(十wu)___ref获取原生dom元素
|
1天前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
2天前
|
移动开发 前端开发 JavaScript
使用html-to-image代替html2canvas,结合jspdf实现下载pdf(下载截图下载前端dom元素)
本文介绍了在前端项目中,当使用`html2canvas`遇到问题时,如何使用`html-to-image`库作为替代方案,结合`jspdf`实现将DOM元素生成为PDF文件并提供下载。文章首先讨论了`html2canvas`可能遇到的问题,并提供了该库的使用示例代码。随后,详细介绍了`html-to-image`库的安装和使用方法,展示了如何将DOM元素转换为Canvas,再利用`jspdf`生成PDF文件。最后,文章通过示例代码说明了整个转换和下载的过程,并展示了效果截图。
7 0
|
1月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
52 1
|
1月前
|
XML JavaScript 前端开发
哇塞!Web 前端惊现 DOM 元素神操作,一场惊心动魄的网页变革,你准备好了吗?
【8月更文挑战第23天】在Web前端开发中,熟练操作DOM元素至关重要。DOM作为一种编程接口,将HTML/XML文档表示为节点树,便于使用JavaScript访问及修改文档内容与结构。
46 0
|
1月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
39 1