html5 js单击隐藏显示,《锋利的JS》 之 单击显示隐藏
这是〈持环开行打进对端架处参触架码我通会法时果锋利的JQ〉里的第二章实例,首先,看效果:直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如如图:
默认状态:隐遇新是直朋能到藏
单击按钮显示遇新是直朋能到分览更多。
很简单的效果遇新是直朋能到分览支体调,先看结构:
*{ margin:0; padding:0;}
body{ font-size:12px; text-align:center;}
a{ color:#04d; text-decoration:none;}
a:hover{ color:#f50; text-decoration:underline;}
.SubCategoryBox{ width:600px; margin:0 auto; text-align:center; margin-top:40px;}
.SubCategoryBox ul{list-style:none;}
.SubCategoryBox ul li{ float:left; width:200px; line-height:20px;}
.showmore{ clear:both; text-align:center; padding-top:10px; zoom:1;}
.showmore a{ display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #aaa;}
.showmore a span{ padding-left:15px; background:url(images/down.gif) no-repeat;}
.promoted a{ color:#f50;}
- 佳能(30440)
- 索尼(27220)
- 三星(20808)
- 尼康(17821)
- 松下(12289)
- 卡西欧(8242)
- 富士(14894)
- 柯达(9520)
- 宾得(2195)
- 理光(4114)
- 奥林巴斯(12205)
- 明基(1466)
- 爱国者(3091)
- 其它品牌相机(7275)
显示全部品牌
再看JQ代码遇新是直朋能到:
$(function(){
var $category = $('ul li:gt(5):not(:last)');
$category.hide();
var $toggleBtn = $('div.showmore > a');
$toggleBtn.click(function(){
if($category.is(":visible")){
$category.hide();
$('.showmore > a span').css("background","url(images/down.gif) no-repeat")
.text("显示全部品牌");
$('ul li').removeClass("promoted");
}else{
$category.show();
$('.showmore a span')
.css("background","url(images/up.gif) no-repeat 0 0")
.text("精简显示品牌");
$('ul li').filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')")
.addClass("promoted");
}
return false;
})
})
JQ很简单不解释,接下来,是我的JS仿写。
从效果和JQ代码中,我们都可以总结出实现这功能的思路出来:
1.获取第7个li到倒数第二个li,隐藏之。
2.获取按钮a元素,单击时显示更多,并修改按钮样式和给一些内容添加样式。
直接看代码吧:
window.onload = function(){
var list = document.getElementsByTagName('li'); //获取页面上的li
var btn = getElementsByClassName('showmore')[0].getElementsByTagName('a')[0]; //获取按钮a
var span = btn.getElementsByTagName('span')[0]; //获取a里面的span
var flag = true; //用以控制显示和隐藏切换
showHidden(list,'none'); //一个显示隐藏函数,由于多次出现,所以弄成函数
btn.onclick = function(){
if(flag){
showHidden(list,'block'); //单击时,显示出隐藏内容
for(var i = 0,l = list.length; i < l; i++){ //遍历所有内容,寻找匹配的内容,添加样式
var str = list[i].innerHTML;
if(str.indexOf("佳能") != -1 || str.indexOf("尼康") != -1 || str.indexOf("奥林巴斯") != -1){
addClass('promoted',list[i]);
}
}
span.innerHTML = "精简显示品牌"; //改变内容
span.style.background = "url(images/up.gif) no-repeat";
flag = false;
}else{
showHidden(list,'none');
for(var i = 0,l = list.length; i < l; i++){
var str = list[i].innerHTML;
if(str.indexOf("佳能") != -1 || str.indexOf("尼康") != -1 || str.indexOf("奥林巴斯") != -1){
removeClass("promoted",list[i]); //移除样式
}
}
span.innerHTML = "显示全部品牌";
span.style.background = "url(images/down.gif) no-repeat";
flag = true;
}
}
}
function showHidden(list,type){ //显示隐藏函数
for(var i = 6, l = list.length - 1; i < l; i++){
list[i].style.display = type;
}
}
function getElementsByClassName(className,node){ //通过类名获取对象
node = node || document;
if(node.getElementsByClassName){
return node.getElementsByClassName(className);
}
var eles = node.getElementsByTagName('*');
var reg = [];
for(var i = 0,l = eles.length; i < l; i++){
if(hasClass(className,eles[i])){
reg.push(eles[i]);
}
}
return reg;
}
function hasClass(className,node){ //判断对象节点是否有某个类
var eles = node.className.split(/\s+/);
for(var i = 0,l = eles.length; i < l; i++){
if(eles[i] == className){
return true;
}
}
return false;
}
function addClass(className,node){ //添加样式
return node.className += " " + className;
}
function removeClass(className,node){ //删除样式
eles = node.className.split(/\s+/);
for(var i = 0,l = eles.length; i < l; i++){
if(eles[i] == className){
eles.splice(i,1);
}
}
node.className = eles.join(" ");
return node;
}
本文来源于网络:查看 >https://www.cnblogs.com/littledu/articles/2034959.html
html5 js单击隐藏显示,《锋利的JS》 之 单击显示隐藏相关推荐
- 原生js设置div隐藏或者显示_10种JS控制DIV的显示隐藏代码
div隐藏与显示 #menus { background-color: #c4cff0; } function Layer_HideOrShow(cur_div) { var current=docu ...
- java点击按钮隐藏图片6_原生JS实现隐藏显示图片 JS实现点击切换图片效果
今天要说的内容,看标题就都能知道了!所有知识点一览无遗啊!咱们今天的东西,是纯纯的原生JS代码, 我先说一下要求: 1.有两个按钮,内容为显示,和换, 2.当点击显示的时候,按钮文字变成隐藏,同时图片 ...
- html5在线显示word文档,JS实现获取word文档内容并输出显示到html页面示例
本文实例讲述了js实现获取word文档内容并输出显示到html页面.分享给大家供大家参考,具体如下: title var w = new activexobject('word.application ...
- Python 3、selenium/执行js命令显示隐藏元素,封装js工具类
为什么需要js? 我们需要执行函数,但是实现成本很高或很难甚至无法实现事件的时候,可以直接通过js命令调用 页面上有些元素无点击事件,不可点击等,调用js直接实现效果即可 还有种种原因导致,没达到我们 ...
- CountUp.js – 让数字以非常有趣的动画方式显示
CountUp.js 无依赖的.轻量级的 JavaScript 类,可以用来快速创建以一种更有趣的动画方式显示数值数据.尽管它的名字叫 countUp,但其实可以在两个方向进行变化,这是根据你传递的 ...
- HTML5系列四(特征检测、Modernizr.js的相关介绍)
Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...
- 锋利的js前端分页之jQuery
原文:锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的 ...
- 【翻译】HTML5开发——轻量级JSON存储解决方案Lawnchair.js
[翻译]HTML5开发--轻量级JSON存储解决方案Lawnchair.js 参考文章: (1)[翻译]HTML5开发--轻量级JSON存储解决方案Lawnchair.js (2)https://ww ...
- html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...
本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: 张秋丽 女 18 李文才 男 31 李斯文 男 22 马英 女 25 孙红雷 ...
- [js] script所在的位置会影响首屏显示时间吗
[js] script所在的位置会影响首屏显示时间吗 会,如果script放在头部,js的执行会阻塞dom树的构建 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎 ...
最新文章
- 在Pycharm工具中配置集成Git和GitHub
- R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
- 用thinkphp进行微信开发的整体设计思考
- antd From 中 Form.Item里含有自己封装的组件,获取不到值的解决方法
- anaconda3 tensorflow安装踩坑记(WIN10+tensorflow带gpu版本)
- 正整数的唯一分解定理 c语言,SSOJ2662正整数的唯一分解定理
- “腾讯持股比例提升”系误读!美团对外定增后腾讯持股比例降低
- 我的小快排(两种分割方法)
- autobuddy in mfc导致的错误
- Scratch3.0 桌面版下载安装使用
- MATLAB从fig文件中获取数据
- Uphone开发心得
- 陈赫孙艺洲携手《你的带货王2020》PK带货 玛莎拉蒂究竟花落谁家?
- vSAN 6.6在线研讨会-4月20日下午2:30 amp;amp; 小提示:如何理解FTT与纠删码的组合?
- 【论文精读】A Survey on Deep Learning for Named Entity Recognition
- 最笨的管理,就是什么事都自己做
- 庖丁解牛式读《Attention is all your need》
- 数据处理如同流水——介绍下偶的数据流引擎Samsara
- 3.5 视频服务器-RTSP实现(框架搭建)
- 蔡徐坤正式成为FILA全新代言人
热门文章
- 11月编程语言排行榜出炉,Python排名势如破竹
- Go语言Web开发Echo框架搭建
- 舒尔补(Schur Complement)
- 51单片机+驱动LCD1602模板范例+Proteus仿真
- 一句让我觉得很有道理的话
- 13100-46-4,1,2,3,4-Tetra-O-acetyl-β-D-glucopyranose,1,2,3,4-四-邻-乙酰基-BETA-D-吡喃(型)葡萄糖
- 网购秒杀系统架构设计 1
- C++ sqrt()
- 第四周项目三(1)—链表的逆置
- 《月亮与六便士》阅读笔记