[前端] js点击按钮实现图片排序

1975 0
Honkers 2022-10-21 16:05:08 | 显示全部楼层 |阅读模式
本文实例为大家分享了js点击按钮实现图片排序的具体代码,供大家参考,具体内容如下
效果
1 、点击按钮
如果按钮文字是从大到小 将li标签按照从大到小的顺序排列 文字改成从小到大
如果按钮文字是从小到大 将li标签按照从小到大的顺序排列 文字变成从大到小
2 、点击按钮 将li随机排序
  1. <style>
  2.     * {
  3.       padding: 0;
  4.       margin: 0;
  5.       list-style: none;
  6.     }
  7.     .wrap {
  8.       width: 440px;
  9.       margin: 50px auto;
  10.       text-align: center;
  11.     }
  12.     ul li {
  13.       float: left;
  14.       width: 100px;
  15.       height: 130px;
  16.       margin-right: 10px;
  17.       margin-bottom: 10px;
  18.       font-size: 12px;
  19.     }
  20.     ul li img {
  21.       width: 100px;
  22.       height: 100px;
  23.     }
  24.     ul li p {
  25.       line-height: 30px;
  26.       text-align: center;
  27.       font-size: 12px;
  28.     }
  29.     .wrap button {
  30.       display: inline-block;
  31.       width: 100px;
  32.       height: 40px;
  33.       text-align: center;
  34.       line-height: 40px;
  35.       background-color: red;
  36.       border: none;
  37.       margin-right: 20px;
  38.       margin-bottom: 20px;
  39.       color: #fff;
  40.       font-size: 16px;
  41.     }
  42. </style>
复制代码
  1. <div class="wrap">
  2.     <button>从大到小</button><button>随机排序</button>
  3.     <ul>
  4.       <li>
  5.         <img src="./img1.jfif" alt="">
  6.         柴犬<span>1</span>
  7.       </li>
  8.       <li>
  9.         <img src="./img2.jfif" alt="">
  10.         柴犬<span>2</span>
  11.       </li>
  12.       <li>
  13.         <img src="./img3.jfif" alt="">
  14.         柴犬<span>3</span>
  15.       </li>
  16.       <li>
  17.         <img src="./img4.jfif" alt="">
  18.         柴犬<span>4</span>
  19.       </li>
  20.       <li>
  21.         <img src="./img5.jfif" alt="">
  22.         柴犬<span>5</span>
  23.       </li>
  24.       <li>
  25.         <img src="./img6.jfif" alt="">
  26.         柴犬<span>6</span>
  27.       </li>
  28.       <li>
  29.         <img src="./img7.jfif" alt="">
  30.         柴犬<span>7</span>
  31.       </li>
  32.       <li>
  33.         <img src="./img8.jfif" alt="">
  34.         柴犬<span>8</span>
  35.    </li>
  36. </ul>
复制代码
  1. <script>
  2.       /*
  3.          2. 效果
  4.             2.1 点击按钮
  5.               如果按钮文字是从大到小 将li标签按照从大到小的顺序排列 文字改成从小到大
  6.               如果按钮文字是从小到大 将li标签按照从小到大的顺序排列 文字变成从大到小
  7.             2.2 点击按钮 将li随机排序
  8.           标签排序比较快
  9.           注意:
  10.             获取元素方式:
  11.               document/父元素.getElementsByTagName()
  12.               document/父元素.getElementsByClassName()
  13.               */
  14.       // 1.获取元素 button li ul
  15.       var btns = document.getElementsByTagName('button');
  16.       var lis = document.getElementsByTagName('li');
  17.       var ul = document.getElementsByTagName('ul')[0];
  18.       console.log(btns, lis, ul);
  19.       // 5.将集合转成数组
  20.       var liarr = [];
  21.       for (var i = 0; i < lis.length; i++) {
  22.         liarr.push(lis[i]);
  23.       }
  24.       console.log(liarr);
  25.       // 2.添加事件
  26.       btns[0].onclick = function () {
  27.         // 3.如果按钮是从大到小
  28.         if (this.innerText == '从大到小') {
  29.           // 4.将li标签按照从大到小的顺序排列
  30.           liarr.sort(function (a, b) {
  31.             console.log(a, b);
  32.             // 6.获取a、b中的span
  33.             var as = a.getElementsByTagName('span')[0].innerText;
  34.             var bs = b.getElementsByTagName('span')[0].innerText;
  35.             console.log(as, bs);
  36.             // 7.设置返回值
  37.             return bs - as;
  38.           });
  39.           // 9.更新文字
  40.           this.innerText = '从小到大'
  41.         } else {
  42.           liarr.sort(function (a, b) {
  43.             console.log(a, b);
  44.             var as = a.getElementsByTagName('span')[0].innerText;
  45.             var bs = b.getElementsByTagName('span')[0].innerText;
  46.             return as - bs;
  47.           });
  48.           this.innerText = '从大到小'
  49.         }
  50.         // console.log(liarr);
  51.         // 8.渲染到ul中
  52.         // 8.1清空页面中ul的内容
  53.         ul.innerHTML = '';
  54.         // 8.2.将liarr里面的每一个数据渲染到页面ul中
  55.         for (var j = 0; j < liarr.length; j++) {
  56.           ul.innerHTML += '<li>' + liarr[j].innerHTML + '</li>';
  57.         }
  58.       }
  59.       // 随机排序
  60.       btns[1].onclick = function () {
  61.         liarr.sort(function (a, b) {
  62.           console.log(a, b);
  63.           return Math.random() - 0.5;
  64.         });
  65.         ul.innerHTML = '';
  66.         for (var j = 0; j < liarr.length; j++) {
  67.           ul.innerHTML += '<li>' + liarr[j].innerHTML + '</li>';
  68.         }
  69.       }
  70. </script>
复制代码
效果:
从小到大


从大到小


随机排序


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4008
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行