javascript三个案例

js 案例

  1. div 拖拽改变大小

引入 jqery 库

<script src="./js/jquery-1.8.3.js"></script>

基本布局

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        position: absolute;
        width: 30px;
        height: 20px;
        border: 1px solid red;
      }
    </style>
  </head>
  <body>
    <div id="test">1111111</div>
    <script src="./js/jquery-1.8.3.js"></script>
  </body>
</html>
  1. 获取 dom
    let mydiv = document.getElementById(“test”);

编辑鼠标点击事件

mydiv.onmousedown = function (e) {
          let ev = e || window.event;
          let disX = ev.clientX - mydiv.offsetLeft;
          let disY = ev.clientY - mydiv.offsetTop;
          // console.log(disX);
          // console.log(disY);
          if (mydiv.setCapture) {
            mydiv.setCapture(); //解决ie8一下文本层问题
          }

编辑鼠标拖动事件

 document.onmousemove = function (e) {
         let ev = e || window.event;
         mydiv.style.left = ev.clientX - disX + "px";
         mydiv.style.top = ev.clientY - disY + "px";
         // console.log(mydiv.style.left);
         // console.log(mydiv.style.top);
       };

编辑放开鼠标时间

	document.onmouseup = function () {
        document.onmousemove = null;
        document.onmouseup = null;
        if (mydiv.releaseCapture) {
          mydiv.releaseCapture();
        }
      };

完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      img {
        width: 300px;
        height: 200px;
      }
      div {
        position: absolute;
        width: 300px;
        height: 200px;
        border: 1px solid red;
      }
    </style>
  </head>
  <body>
    <div id="test">
      1111111
      <img src="" alt="" />
    </div>
    <script src="./js/jquery-1.8.3.js"></script>
    <script>
      $(function () {
        let mydiv = document.getElementById("test");
        // console.log(mydiv);
        mydiv.onmousedown = function (e) {
          let ev = e || window.event;
          let disX = ev.clientX - mydiv.offsetLeft;
          let disY = ev.clientY - mydiv.offsetTop;
          // console.log(disX);
          // console.log(disY);
          if (mydiv.setCapture) {
            mydiv.setCapture(); //解决ie8一下文本层问题
          }
          document.onmousemove = function (e) {
            let ev = e || window.event;
            mydiv.style.left = ev.clientX - disX + "px";
            mydiv.style.top = ev.clientY - disY + "px";
            // console.log(mydiv.style.left);
            // console.log(mydiv.style.top);
          };
          document.onmouseup = function () {
            document.onmousemove = null;
            document.onmouseup = null;
            if (mydiv.releaseCapture) {
              mydiv.releaseCapture();
            }
          };
          return false;
        };
      });
    </script>
  </body>
</html>

在这里插入图片描述

  1. 字符穿综合

基本布局

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style type="text/css">
      * {
        margin: 0;
        padding: 0;
        font-family: "微软雅黑";
      }
      p {
        margin: 100px auto;
        padding: 20px;
        width: 400px;
        border: 5px solid #808080;
        font-size: 18px;
      }
      a {
        font-size: 14px;
      }
      .btn {
        width: 40px;
        height: 25px;
        text-align: center;
        line-height: 25px;
        border: 1px solid #808080;
      }
      .btn {
        background: #dcdcdc;
        padding: 5px;
        position: absolute;
        left: 50%; /*让元素居中写法*/
        margin-left: 225px;
        top: 100px;
        cursor: pointer;
      }
      #ChangeCard {
        width: 300px;
        height: 100px;
        padding: 20px;
        border: 5px solid #cd5c5c;
        position: absolute;
        left: 50%; /*让元素居中写法*/
        margin-left: -170px;
        top: 300px;
        overflow: hidden;
        display: none;
      }
      .Change_div {
        float: left;
        width: 40px;
        height: 20px;
        text-align: center;
        line-height: 20px;
        padding: 5px;
        cursor: pointer;
      }
      .myChange {
        clear: left;
        border-top: 2px solid #db7093;
        padding: 20px;
      }
      input[type="text"] {
        display: inline-block;
        width: 100px;
      }
    </style>
  </head>
  <body>
    <p>
      <span>
        妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!
        2013年底,妙味课堂最新推出"远程培训"服务,受到很多朋友们的喜爱与追捧,我们必将更加努力的帮助远程学习的朋友实现技术提升……
      </span>
      <a href="javascript:;">>>收缩</a>
    </p>
    <div class="btn">查找</div>
    <div class="btn" style="top: 135px">替换</div>
    <div id="ChangeCard">
      <div class="Change_div">查找</div>
      <div class="Change_div">替换</div>
      <div class="myChange">
        <input class="myContent" type="text" />
        <input class="do_btn" type="button" value="查找" />
      </div>
      <div class="myChange">
        <input class="myContent" type="text" />
        <input class="myContent" type="text" />
        <input class="do_btn" type="button" value="替换" />
      </div>
    </div>
  </body>
</html>

获取 dom

let oSpan = document.getElementsByTagName("span");
let oA = document.getElementsByTagName("a");
let btn = true;
let oldContent = oSpan[0].innerHTML;

编辑文本展开与搜索

oA[0].onclick = function () {
  if (btn) {
    oSpan[0].innerHTML = oldContent.substring(0, 27) + "......";
    oA[0].innerHTML = ">>展开";
  } else {
    oSpan[0].innerHTML = oldContent;
    oA[0].innerHTML = ">>收缩";
  }
  btn = !btn;
}; //将文本展开与收缩

编辑查找替换卡片

let myDiv = document.getElementById("ChangeCard");
let oBtn = document.getElementsByClassName("btn");
let Change_div = document.getElementsByClassName("Change_div");
oBtn[0].onclick = function () {
  // 编辑切换功能
  myDiv.style.display = "block";
  document.getElementsByClassName("Change_div")[0].style.background = "#db7093";
  document.getElementsByClassName("Change_div")[1].style.background = "#fff";
  document.getElementsByClassName("myChange")[0].style.display = "block";
  document.getElementsByClassName("myChange")[1].style.display = "none";
};
oBtn[1].onclick = function () {
  myDiv.style.display = "block";
  document.getElementsByClassName("Change_div")[0].style.background = "#fff";
  document.getElementsByClassName("Change_div")[1].style.background = "#db7093";
  document.getElementsByClassName("myChange")[0].style.display = "none";
  document.getElementsByClassName("myChange")[1].style.display = "block";
};
Change_div[0].onclick = function () {
  document.getElementsByClassName("Change_div")[0].style.background = "#db7093";
  document.getElementsByClassName("Change_div")[1].style.background = "#fff";
  document.getElementsByClassName("myChange")[0].style.display = "block";
  document.getElementsByClassName("myChange")[1].style.display = "none";
};
Change_div[1].onclick = function () {
  document.getElementsByClassName("Change_div")[0].style.background = "#fff";
  document.getElementsByClassName("Change_div")[1].style.background = "#db7093";
  document.getElementsByClassName("myChange")[0].style.display = "none";
  document.getElementsByClassName("myChange")[1].style.display = "block";
};

编辑查找功能

var do_btns = document.getElementsByClassName("do_btn");
      do_btns[0].onclick = function () {
        let str = /^\S+$/;
        let myContent = oSpan[0].innerHTML;
        let mySearch = document.getElementsByClassName("myContent")[0].value;
        if (str.test(mySearch)) {
          if (myContent.split(mySearch).length == 1) {
            alert("没找到");
            document.getElementsByClassName("myContent")[0].value = ""; //清空
            return false;
          }
          oSpan[0].innerHTML = myContent
            .split(mySearch)
            .join("<span style='background:#ff0;'> " + mySearch + "</span>");
          oldContent = oSpan[0].innerHTML;
          document.getElementsByClassName("myContent")[0].value = ""; //清空
        } else {
          alert("请输入查找内容");
        }

编辑替换功能

do_btns[1].onclick = function () {
  let str = /^\S+$/;
  let myContent = oSpan[0].innerHTML;
  let myChange1 = document.getElementsByClassName("myContent")[1].value;
  let myChange2 = document.getElementsByClassName("myContent")[2].value;
  if (!str.test(myChange1)) {
    alert("输入要替换的内容");
    return false;
  }
  if (!str.test(myChange2)) {
    if (confirm("确定要删除吗")) {
      oSpan[0].innerHTML = myContent
        .split(myChange1)
        .join("<span style = 'background:orange;'>" + myChange2 + "</span>");
      document.getElementsByClassName("myChange")[1].value = ""; //清空
      return false;
    }
  }
  oSpan[0].innerHTML = myContent
    .split(myChange1)
    .join("<span style = 'background:orange;'>" + myChange2 + "</span>");
  oldContent = oSpan[0].innerHTML;
  document.getElementsByClassName("myContent")[1].value = ""; //清空
  document.getElementsByClassName("myChange")[2].value = "";
};

完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style type="text/css">
      * {
        margin: 0;
        padding: 0;
        font-family: "微软雅黑";
      }
      p {
        margin: 100px auto;
        padding: 20px;
        width: 400px;
        border: 5px solid #808080;
        font-size: 18px;
      }
      a {
        font-size: 14px;
      }
      .btn {
        width: 40px;
        height: 25px;
        text-align: center;
        line-height: 25px;
        border: 1px solid #808080;
      }
      .btn {
        background: #dcdcdc;
        padding: 5px;
        position: absolute;
        left: 50%; /*让元素居中写法*/
        margin-left: 225px;
        top: 100px;
        cursor: pointer;
      }
      #ChangeCard {
        width: 300px;
        height: 100px;
        padding: 20px;
        border: 5px solid #cd5c5c;
        position: absolute;
        left: 50%; /*让元素居中写法*/
        margin-left: -170px;
        top: 300px;
        overflow: hidden;
        display: none;
      }
      .Change_div {
        float: left;
        width: 40px;
        height: 20px;
        text-align: center;
        line-height: 20px;
        padding: 5px;
        cursor: pointer;
      }
      .myChange {
        clear: left;
        border-top: 2px solid #db7093;
        padding: 20px;
      }
      input[type="text"] {
        display: inline-block;
        width: 100px;
      }
    </style>
  </head>
  <body>
    <p>
      <span>
        妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!
        2013年底,妙味课堂最新推出"远程培训"服务,受到很多朋友们的喜爱与追捧,我们必将更加努力的帮助远程学习的朋友实现技术提升……
      </span>
      <a href="javascript:;">>>收缩</a>
    </p>
    <div class="btn">查找</div>
    <div class="btn" style="top: 135px">替换</div>
    <div id="ChangeCard">
      <div class="Change_div">查找</div>
      <div class="Change_div">替换</div>
      <div class="myChange">
        <input class="myContent" type="text" />
        <input class="do_btn" type="button" value="查找" />
      </div>
      <div class="myChange">
        <input class="myContent" type="text" />
        <input class="myContent" type="text" />
        <input class="do_btn" type="button" value="替换" />
      </div>
    </div>
    <script>
      let oSpan = document.getElementsByTagName("span");
      let oA = document.getElementsByTagName("a");
      let btn = true;
      let oldContent = oSpan[0].innerHTML;
      oA[0].onclick = function () {
        if (btn) {
          oSpan[0].innerHTML = oldContent.substring(0, 27) + "......";
          oA[0].innerHTML = ">>展开";
        } else {
          oSpan[0].innerHTML = oldContent;
          oA[0].innerHTML = ">>收缩";
        }
        btn = !btn;
      }; //将文本展开与收缩
      let myDiv = document.getElementById("ChangeCard");
      let oBtn = document.getElementsByClassName("btn");
      let Change_div = document.getElementsByClassName("Change_div");
      oBtn[0].onclick = function () {
        // 编辑切换功能
        myDiv.style.display = "block";
        document.getElementsByClassName("Change_div")[0].style.background =
          "#db7093";
        document.getElementsByClassName("Change_div")[1].style.background =
          "#fff";
        document.getElementsByClassName("myChange")[0].style.display = "block";
        document.getElementsByClassName("myChange")[1].style.display = "none";
      };
      oBtn[1].onclick = function () {
        myDiv.style.display = "block";
        document.getElementsByClassName("Change_div")[0].style.background =
          "#fff";
        document.getElementsByClassName("Change_div")[1].style.background =
          "#db7093";
        document.getElementsByClassName("myChange")[0].style.display = "none";
        document.getElementsByClassName("myChange")[1].style.display = "block";
      };
      Change_div[0].onclick = function () {
        document.getElementsByClassName("Change_div")[0].style.background =
          "#db7093";
        document.getElementsByClassName("Change_div")[1].style.background =
          "#fff";
        document.getElementsByClassName("myChange")[0].style.display = "block";
        document.getElementsByClassName("myChange")[1].style.display = "none";
      };
      Change_div[1].onclick = function () {
        document.getElementsByClassName("Change_div")[0].style.background =
          "#fff";
        document.getElementsByClassName("Change_div")[1].style.background =
          "#db7093";
        document.getElementsByClassName("myChange")[0].style.display = "none";
        document.getElementsByClassName("myChange")[1].style.display = "block";
      };
      // 查找
      var do_btns = document.getElementsByClassName("do_btn");
      do_btns[0].onclick = function () {
        let str = /^\S+$/;
        let myContent = oSpan[0].innerHTML;
        let mySearch = document.getElementsByClassName("myContent")[0].value;
        if (str.test(mySearch)) {
          if (myContent.split(mySearch).length == 1) {
            alert("没找到");
            document.getElementsByClassName("myContent")[0].value = ""; //清空
            return false;
          }
          oSpan[0].innerHTML = myContent
            .split(mySearch)
            .join("<span style='background:#ff0;'> " + mySearch + "</span>");
          oldContent = oSpan[0].innerHTML;
          document.getElementsByClassName("myContent")[0].value = ""; //清空
        } else {
          alert("请输入查找内容");
        }
      };
      // 替换
      do_btns[1].onclick = function () {
        let str = /^\S+$/;
        let myContent = oSpan[0].innerHTML;
        let myChange1 = document.getElementsByClassName("myContent")[1].value;
        let myChange2 = document.getElementsByClassName("myContent")[2].value;
        if (!str.test(myChange1)) {
          alert("输入要替换的内容");
          return false;
        }
        if (!str.test(myChange2)) {
          if (confirm("确定要删除吗")) {
            oSpan[0].innerHTML = myContent
              .split(myChange1)
              .join(
                "<span style = 'background:orange;'>" + myChange2 + "</span>"
              );
            document.getElementsByClassName("myChange")[1].value = ""; //清空
            return false;
          }
        }
        oSpan[0].innerHTML = myContent
          .split(myChange1)
          .join("<span style = 'background:orange;'>" + myChange2 + "</span>");
        oldContent = oSpan[0].innerHTML;
        document.getElementsByClassName("myContent")[1].value = ""; //清空
        document.getElementsByClassName("myChange")[2].value = "";
      };
    </script>
  </body>
</html>

在这里插入图片描述

  1. 瀑布流

基本布局

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }
      .wrap {
        width: 100%;
      }
      .wrap .cont {
        width: 1000px;
        margin: 0 auto;
        overflow: hidden;
      }
      .wrap ul {
        float: left;
        margin: 0 25px;
        list-style: none;
      }
      .wrap ul li {
        width: 200px;
        background: #dcdcdc;
        margin: 10px 0;
      }
      h2 {
        height: 70px;
        line-height: 70px;
        background: #101010;
        padding-left: 50px;
        color: #fff;
      }
      .wrap ul .h1 {
        height: 200px;
      }
      .wrap ul .h2 {
        height: 70px;
      }
      .wrap ul .h3 {
        height: 300px;
      }
      .wrap ul .h4 {
        height: 180px;
      }
    </style>
  </head>
  <body>
    <div class="wrap">
      <h2>瀑布流展示:</h2>
      <div class="cont">
        <ul></ul>
        <ul></ul>
        <ul></ul>
        <ul></ul>
      </div>
    </div>
  </body>
</html>

引入 jqery 库

<script src="./js/jquery-1.8.3.js"></script>

将随机高度的 ul 加入到最小高度的 ul 里

function appendLi() {
  let ulList = $(".cont > ul");
  let ul1_h = ulList[0].offsetHeight;
  let ul2_h = ulList[1].offsetHeight;
  let ul3_h = ulList[2].offsetHeight;
  let ul4_h = ulList[3].offsetHeight;
  let minUl = Math.min(ul1_h, ul2_h, ul3_h, ul4_h);
  let min_ul;
  let lis;
  let classH;
  for (var i = 0; i < ulList.length; i++) {
    if (ulList[i].offsetHeight == minUl) {
      min_ul = ulList[i];
    }
    classH = getRanddomHeight();
    lis = '<li class="h' + classH + '"></li>';
  }
  $(min_ul).append(lis);
}

向下生成新高度

function getRanddomHeight() {
  return Math.floor(Math.random() * 3 + 1);
}

像无序列表添加不同高度的列表项

$(function () {
  for (var i = 0; i < 20; i++) {
    appendLi();
  }
});

出发滚动事件

$(window).on("scroll", function () {
  if (
    $(document).scrollTop() + $(window).height() >
    $(document).height() - 20
  ) {
    $(document).scrollTop($(document).scrollTop() - 10);
    appendLi();
  }
});

完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }
      .wrap {
        width: 100%;
      }
      .wrap .cont {
        width: 1000px;
        margin: 0 auto;
        overflow: hidden;
      }
      .wrap ul {
        float: left;
        margin: 0 25px;
        list-style: none;
      }
      .wrap ul li {
        width: 200px;
        background: #dcdcdc;
        margin: 10px 0;
      }
      h2 {
        height: 70px;
        line-height: 70px;
        background: #101010;
        padding-left: 50px;
        color: #fff;
      }
      .wrap ul .h1 {
        height: 200px;
      }
      .wrap ul .h2 {
        height: 70px;
      }
      .wrap ul .h3 {
        height: 300px;
      }
      .wrap ul .h4 {
        height: 180px;
      }
    </style>
  </head>
  <body>
    <div class="wrap">
      <h2>瀑布流展示:</h2>
      <div class="cont">
        <ul></ul>
        <ul></ul>
        <ul></ul>
        <ul></ul>
      </div>
    </div>
    <script src="./js/jquery-1.8.3.js"></script>
    <script>
      function appendLi() {
        let ulList = $(".cont > ul");
        let ul1_h = ulList[0].offsetHeight;
        let ul2_h = ulList[1].offsetHeight;
        let ul3_h = ulList[2].offsetHeight;
        let ul4_h = ulList[3].offsetHeight;
        let minUl = Math.min(ul1_h, ul2_h, ul3_h, ul4_h);
        let min_ul;
        let lis;
        let classH;
        for (var i = 0; i < ulList.length; i++) {
          if (ulList[i].offsetHeight == minUl) {
            min_ul = ulList[i];
          }
          classH = getRanddomHeight();
          lis = '<li class="h' + classH + '"></li>';
        }
        $(min_ul).append(lis);
      }
      function getRanddomHeight() {
        return Math.floor(Math.random() * 3 + 1);
      }
      $(function () {
        for (var i = 0; i < 20; i++) {
          appendLi();
        }
      });
      $(window).on("scroll", function () {
        if (
          $(document).scrollTop() + $(window).height() >
          $(document).height() - 20
        ) {
          $(document).scrollTop($(document).scrollTop() - 10);
          appendLi();
        }
      });
    </script>
  </body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会_摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值