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 相关文章推荐
基于jQuery的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
May 13 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
javascript瀑布流布局实现方法详解
Feb 17 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
原生js封装自定义滚动条
Mar 24 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
Vue数据绑定简析小结
May 07 Javascript
通过原生vue添加滚动加载更多功能
Nov 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
模拟xcopy的函数
2006/10/09 PHP
php基础知识:控制结构
2006/12/13 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php实现求相对时间函数
2015/06/15 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
js 闭包深入理解与实例分析
2020/03/19 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
详解javascript void(0)
2020/07/13 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
python encode和decode的妙用
2009/09/02 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python编程求质数实例代码
2018/01/31 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
python 怎样进行内存管理
2020/11/10 Python
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
小学生自我鉴定
2013/10/12 职场文书
劳动竞赛口号
2014/06/16 职场文书
标准毕业生自荐信
2014/06/24 职场文书
标准版离职证明书
2014/09/12 职场文书
房屋出售授权委托书
2014/10/12 职场文书
监理中标通知书
2015/04/16 职场文书
竞聘书的秘诀
2019/04/02 职场文书
PHP命令行与定时任务
2021/04/01 PHP