jq实现的tab小demo
来源:互联网 发布:win7桌面整理软件 编辑:程序博客网 时间:2024/05/14 20:51
一:体会
- 虽然只是一个很小的demo,但途中却遇到很多问题,问题都很小但是却很难发现,解决过程很是恼火,偶尔灵光一闪却又想了起来,而且混淆了很多jq和原生js中的方法,分不清楚哪个是jq中的,哪个是原生js中的,有很多东西都看过,但是却又很多细节不清楚,做东西时很容易发生问题并且半天发现不了,要是有过目不忘的本领就好了~~
二:查询知识点
- 不是jq对象无法使用jq库中的方法,比如下列代码中的boxs[i],不要将其转化为jq对象$(boxs[i])才能使用方法show()
- 在for循环中使用let声明的变量只在本轮循环有效,每一次循环的变量都是一个新的变量,可以循环闭包中变量i的问题,也在下面代码中有体现
- 数组也具有indexOf方法,例如:arr.indexOf(“a”);返回”a”在数组中第一次出现的位置
- 原生js中绑定点击事件方法:.onclick = function(){}; jq中绑定点击事件方法:.click(function(){});或者使用.on() 方法
- 事件冒泡和事件捕捉的区别:父级元素和子级元素都绑定了click事件,如果点击了子级元素,父级元素和子级元素都会触发click事件
- 事件捕捉:父元素先触发,子元素后触发
- 事件冒泡:子元素先触发,父元素后触发
- this的指向由运行时指定,而不是编写时指定,箭头函数相反
- jq中的eq有两种用法: 1. :eq(index)选择器用法,2. .eq(index)函数用法,都是获取相应index位置的元素
- jq中的index()方法,不传参数index()用法,获取相应元素在同胞元素的位置,传参
().index(element)用法,获取element元素在 (selector)中的位置,element为相应的jq和dom选择器 - .sibings()获取相应元素的同胞元素,还可以添加选择器限制相应选择器的同胞元素.sibings(selector)
- mouseover与mouseenter的区别:
- 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。
- 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。
mouseout与mouseleave同理
三:代码
html代码:
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>tab选项卡</title> <link rel="stylesheet" href="css/tab.css" /> </head> <body> <div class="main"> <ul class="tab_nav"> <li class="tab select">HTML</li> <li class="tab unsel">CSS</li> <li class="tab unsel">JS</li> <li class="white">空白</li> </ul> <div class="tab_content"> <div class="box1">我负责网页结构。</div> <div class="box2 hide">我负责网页样式。</div> <div class="box3 hide">我负责网页特效。</div> </div> </div> <script src="js/jquery-1.11.0.min.js"></script> <script src="js/tab.js"></script> </body></html>
css代码:
body,ul,li,div{ margin:0px; padding:0px;}ul,li{ list-style: none;}ul:after{ content:""; display: block; clear:both;}li{ float:left; padding:5px;}.main{ padding:20px; border:1px solid #bbb; width:280px; margin:100px auto 0;}.tab_nav .select{ border-top:1px solid #bbb; border-left:1px solid #bbb; border-right:1px solid #bbb;}.tab_nav .unsel{ border-bottom:1px solid #bbb;}.tab_nav .white{ text-indent: -9999em; width:100px; border-bottom:1px solid #bbb;}.tab_nav .tab{ width:46px; text-align: center; box-sizing;content-box;}.tab_content div{ padding-top:10px; height:50px;}.tab_content .hide{ display: none;}
javascript代码:
$(function(){ var tabs = $(".main .tab_nav .tab"); var boxs = $(".main .tab_content div"); for(let i in tabs){ tabs[i].onclick = function(){ $(this).addClass("select").removeClass("unsel").siblings().addClass("unsel").removeClass("select"); $(boxs[i]).show().siblings().hide(); }; };});
四:demo效果图
如果有问题,或者有好的意见,可以在下面给我评论,我还是个noob.
阅读全文
1 0
- jq实现的tab小demo
- jq实现简单的tab切换效果
- jq的tab切换
- jquery-mobile实现移动端tab页切换的小demo
- jq,TAB
- 制作tab中遇到的jq问题
- ViewAnimator实例源码小Demo+Tab例子
- tabhost+自定义tab的demo
- CountDownTimer实现倒计时器的小demo
- viewpager+fragment实现的一个小Demo
- Android实现控件拖动的小Demo
- 一个jQ的小例子
- js,jq,css多方面实现简易Tab切换
- ActionBar + Fragment 实现Tab导航Demo
- ActionBar + Fragment 实现Tab导航Demo
- Fragment+Framelayout 小复习 实现简单的 tab
- JQ实现点击小图显示大图
- JQ 监控Tab 按键
- 设计模式之抽象工厂模式
- TCP
- Tomcat 启动JVM参数配置
- Fail2ban工具
- Java_log2000_awt&swing编程1
- jq实现的tab小demo
- McAfee阻止邮件发送功能
- Linux系统故障修复
- TSC 标签打印机,使用TSPL指令,前端 jsp 调用打印二维码和文本标签的案例
- linux复制文件夹下的所有文件,不复制文件夹
- PHP 编程中 10 个最常见的错误,你犯过几个?
- 通过这九本开源好书学习_C_语言
- BOW (bag of words) 词袋模型
- Library projects cannot set applicationId问题解决