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 相关文章推荐
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 Javascript
jQuery ajax分页插件实例代码
Jan 27 Javascript
使用jquery实现的循环连续可停顿滚动实例
Nov 23 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
Feb 19 Javascript
详解Angular2响应式表单
Jun 14 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
基于vue.js实现分页查询功能
Dec 29 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程序时遇到的三个问题
2012/01/17 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
layui多图上传实现删除功能的例子
2019/09/23 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
python函数声明和调用定义及原理详解
2019/12/02 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Ruby如何进行文件操作
2014/07/17 面试题
大学生收银员求职信分享
2014/01/02 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL