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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
js 数据类型转换总结笔记
Jan 17 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
JQuery入门基础小实例(1)
Sep 17 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
Nov 28 Javascript
JavaScript实现自动跳转文本功能
May 25 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 Javascript
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 防注入函数(格式化数据)
2011/08/08 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
简述数据库的设计过程
2015/06/22 面试题
新闻记者个人求职的自我评价
2013/11/28 职场文书
党员批评与自我批评
2014/02/12 职场文书
信访稳定工作汇报
2014/10/27 职场文书
倡议书的格式写法
2015/04/28 职场文书
毕业生政审意见范文
2015/06/04 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis