如何用JS制作点击按钮可以完成图片排序的功能
Admin 2022-08-09 群英技术资讯 740 次浏览
本文实例为大家分享了js点击按钮实现图片排序的具体代码,供大家参考,具体内容如下
效果
1 、点击按钮
如果按钮文字是从大到小 将li标签按照从大到小的顺序排列 文字改成从小到大
如果按钮文字是从小到大 将li标签按照从小到大的顺序排列 文字变成从大到小
2 、点击按钮 将li随机排序
<style> * { padding: 0; margin: 0; list-style: none; } .wrap { width: 440px; margin: 50px auto; text-align: center; } ul li { float: left; width: 100px; height: 130px; margin-right: 10px; margin-bottom: 10px; font-size: 12px; } ul li img { width: 100px; height: 100px; } ul li p { line-height: 30px; text-align: center; font-size: 12px; } .wrap button { display: inline-block; width: 100px; height: 40px; text-align: center; line-height: 40px; background-color: red; border: none; margin-right: 20px; margin-bottom: 20px; color: #fff; font-size: 16px; } </style>
<div class="wrap"> <button>从大到小</button><button>随机排序</button> <ul> <li> <img src="./img1.jfif" alt=""> 柴犬<span>1</span> </li> <li> <img src="./img2.jfif" alt=""> 柴犬<span>2</span> </li> <li> <img src="./img3.jfif" alt=""> 柴犬<span>3</span> </li> <li> <img src="./img4.jfif" alt=""> 柴犬<span>4</span> </li> <li> <img src="./img5.jfif" alt=""> 柴犬<span>5</span> </li> <li> <img src="./img6.jfif" alt=""> 柴犬<span>6</span> </li> <li> <img src="./img7.jfif" alt=""> 柴犬<span>7</span> </li> <li> <img src="./img8.jfif" alt=""> 柴犬<span>8</span> </li> </ul>
<script> /* 2. 效果 2.1 点击按钮 如果按钮文字是从大到小 将li标签按照从大到小的顺序排列 文字改成从小到大 如果按钮文字是从小到大 将li标签按照从小到大的顺序排列 文字变成从大到小 2.2 点击按钮 将li随机排序 标签排序比较快 注意: 获取元素方式: document/父元素.getElementsByTagName() document/父元素.getElementsByClassName() */ // 1.获取元素 button li ul var btns = document.getElementsByTagName('button'); var lis = document.getElementsByTagName('li'); var ul = document.getElementsByTagName('ul')[0]; console.log(btns, lis, ul); // 5.将集合转成数组 var liarr = []; for (var i = 0; i < lis.length; i++) { liarr.push(lis[i]); } console.log(liarr); // 2.添加事件 btns[0].onclick = function () { // 3.如果按钮是从大到小 if (this.innerText == '从大到小') { // 4.将li标签按照从大到小的顺序排列 liarr.sort(function (a, b) { console.log(a, b); // 6.获取a、b中的span var as = a.getElementsByTagName('span')[0].innerText; var bs = b.getElementsByTagName('span')[0].innerText; console.log(as, bs); // 7.设置返回值 return bs - as; }); // 9.更新文字 this.innerText = '从小到大' } else { liarr.sort(function (a, b) { console.log(a, b); var as = a.getElementsByTagName('span')[0].innerText; var bs = b.getElementsByTagName('span')[0].innerText; return as - bs; }); this.innerText = '从大到小' } // console.log(liarr); // 8.渲染到ul中 // 8.1清空页面中ul的内容 ul.innerHTML = ''; // 8.2.将liarr里面的每一个数据渲染到页面ul中 for (var j = 0; j < liarr.length; j++) { ul.innerHTML += '<li>' + liarr[j].innerHTML + '</li>'; } } // 随机排序 btns[1].onclick = function () { liarr.sort(function (a, b) { console.log(a, b); return Math.random() - 0.5; }); ul.innerHTML = ''; for (var j = 0; j < liarr.length; j++) { ul.innerHTML += '<li>' + liarr[j].innerHTML + '</li>'; } } </script>
效果:
从小到大
从大到小
随机排序
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
对axios进行封装以及将API接口按业务模块统一管理,有助于我们简化代码,方便后期维护。本文介绍了如何用vue封装axios请求,感兴趣的同学,可以参考下。
本篇文章带大家了解一下node.js中的module-alias,介绍一下module-alias原理、module-alias的一个常见问题(坑),希望对大家有所帮助!
这篇文章主要为大家详细介绍了原生javascript实现图片轮播切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要为大家详细介绍了vue全局实现数字千位分隔符格式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JS如何进行按位取反计算?一些朋友可能不是了解什么是按位取反运算,按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是~按位取反的运算结果。那么JavaScript中如何来实现呢?下面我们一起来看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008