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控制listbox中项的移动并排序的实现代码
Sep 28 Javascript
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
JS改变页面颜色源码分享
Feb 24 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
使用webpack搭建vue项目及注意事项
Jun 10 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
vue 使用rules对表单字段进行校验的步骤
Dec 25 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
PHP实现计算器小功能
2020/08/28 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
javascript中this的四种用法
2015/05/11 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
python安装教程
2018/02/28 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers