JavaScript实现点击切换功能


Posted in Javascript onJanuary 27, 2021

本文实例为大家分享了JavaScript实现点击切换功能的具体代码,供大家参考,具体内容如下

在实际应用中,点击或者移入某一元素上,弹出下拉菜单或者页面,是网页设计的常见操作。

下面我们实现一种点击菜单实现菜单切换,使用js提供三种方式实现该功能。

JavaScript实现点击切换功能

1.使用html设计基本结构

<body>
<h2>多Tab点击切换</h2>
<ul id="tab">
 <li id="tab1" value="1">10元套餐</li>
 <li id="tab2" value="2">30元套餐</li>
 <li id="tab3" value="3">50元包月</li>
</ul>
<div id="container">
 <div id="content1">
 10元套餐详情:<br/> 每月套餐内拨打100分钟,超出部分2毛/分钟
 </div>
 <div id="content2" style="display: none">
 30元套餐详情:<br/> 每月套餐内拨打300分钟,超出部分1.5毛/分钟
 </div>
 <div id="content3" style="display: none">
 50元包月详情:<br/> 每月无限量随心打
 </div>
</div>
</body>

2.使用css设计基本样式

<style>
 * {
  margin: 0;
  padding: 0;
 }
 #tab li {
  float: left;
  list-style: none;
  width: 80px;
  height: 40px;
  line-height: 40px;
  cursor: pointer;
  text-align: center;
 }
 #container {
  position: relative;
 }
 #content1, #content2, #content3 {
  width: 300px;
  height: 100px;
  padding: 30px;
  position: absolute;
  top: 40px;
  left: 0;
 }
 #tab1, #content1 {
  background-color: #ffcc00;
 }
 #tab2, #content2 {
  background-color: #ff00cc;
 }
 #tab3, #content3 {
  background-color: #00ccff;
 }
</style>

3.js实现点击切换功能

//原生js
 var container=document.querySelectorAll('#container>div')
 var event_li=document.querySelectorAll('#tab>li')
 var currentindex=0
 for(var i=0;i<event_li.length;i++){
 event_li[i].num=i
 event_li[i].onclick=function(){
  container[currentindex].style.display='none'
  var index_other=this.num
  container[index_other].style.display='block'
  currentindex=index_other
 }}
//jQuery实现,点击一下父元素,子元素全部display_none,再将点击事件的元素的子元素设置为display_block
var $container=$('#container>div')
$('#tab>li').click(function(){
 $container.css('display', 'none')
 var index=$(this).index()
 var index_other=$(this).val()-1
 $container[index_other].style.display = 'block'
})
//jQuery实现,点击一下父元素,最开始的元素的子元素display_none,再将点击事件的元素的子元素设置为display_block
currentindex=0
$('#tab>li').click(function(){
 $($container[currentindex]).css('display', 'none')
 var index=$(this).index()
 $container[index].style.display = 'block'
 currentindex=index
})

4.总结

(1)、原生js就可以实现点击切换的功能,但是使用jQuery后更为容易,语法简单,却功能强大。

(2)、在比较2和3方法,可以看到第2法在触发点击事件后是将所有子元素设置的显示方式为none,显然在子元素较多时,此时要修改的次数也相应的增加,势必影响加载的性能,应该优化为3方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
修改发贴的编辑功能
Mar 07 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
Dec 22 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
js中document.referrer实现移动端返回上一页
Feb 22 Javascript
微信小程序 引入es6 promise
Apr 12 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
详解微信小程序调起键盘性能优化
Jul 24 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
Vue与React的区别和优势对比
Dec 18 Vue.js
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 #Javascript
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 #Vue.js
vue实现轮播图帧率播放
Jan 26 #Vue.js
vue 组件基础知识总结
Jan 26 #Vue.js
深入了解Vue动态组件和异步组件
Jan 26 #Vue.js
如何在 Vue 表单中处理图片
Jan 26 #Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 #Vue.js
You might like
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
php xhprof使用实例详解
2019/04/15 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
python绘图方法实例入门
2015/05/19 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
详解Python3 基本数据类型
2019/04/19 Python
python opencv实现图像边缘检测
2019/04/29 Python
selenium+python环境配置教程详解
2019/05/28 Python
python搜索包的路径的实现方法
2019/07/19 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python 求定积分和不定积分示例
2019/11/20 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
比利时买床:Beter Bed
2017/12/06 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL