新手请教一下这个点击展开和收起列表的写法是怎么实现的? 没找到你要的效果啊 大概设置display 或者通过setInterval修改元素的高吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也是看了半天,找不到是啥办法,链接上带有个javascript,其他看不懂了。 找一下源码就知道了~如下:(1)html+css:css中先定义好,ul默认为overflow:hidden,类名为btn_links_open的ul为:overflow:visible.(2)js:js控制类名来实现ul样式的改变。取到视频,彩票...这些li中的a元素,给每个a元素绑定mousedown事件:鼠标在a上按下的时候,判断a的类名中是否有open===>->没有就加上open,同时给这个a对应的ul的类名加上加上‘btn_links_open’;->有就去掉‘open’同时还要给对应的ul的类名中去掉‘btn_links_open’; 请教,如果我要完整复制这个功能,把他的ul、li等结构弄下来,附上你给的css部分,和js部分,就能实现了吗?我怎么试了下好像无效…… 不就是设置目标容器的style.display=none/block就好了,再次点击判断下状态,然后切换到另外的状态去<a href="javascript:showhide('xiaoshuo')">小说</a><div id="xiaoshuo" style="display:none">小说内容......</div><br /><a href="javascript:showhide('shipin')">视频</a><div id="shipin" style="display:none">视频内容......</div><script type="text/javascript"> function showhide(id) { var o = document.getElementById(id); o.style.display = o.style.display == 'block' ? 'none' : 'block'; }</script> 原理就是那样的,只是一个通过css类来控制,一个直接操作控件的style属性而已 哦,我一直在研究他那个。好像那个没有指定每个ul的ID吧,是自动获取的吗?你这个给每个div还赋予了一个ID来区分是点击哪个吧? 毒霸那个通过dom关系获取的,在http://m.duba.com/static/js/v1/min.touch.js?v=201311141625这个js文件里面a=document.getElementsByClassName("aft");for(b=0;b<a.length;b++)a[b].addEventListener("mousedown",function(){var a=this.className,b=knext(this.parentNode.parentNode),c=b.className;-1==a.indexOf("open")?(this.className=a+" open",b.className=c+" btn_links_open"):(this.className=a.replace(" open",""),b.className=c.replace(" btn_links_open",""))})} 嗯,我就是把这些字符:a=document.getElementsByClassName("aft"); for(b=0;b<a.length;b++) a[b].addEventListener("mousedown",function(){ var a=this.className,b=knext(this.parentNode.parentNode),c=b.className; -1==a.indexOf("open")?(this.className=a+" open",b.className=c+" btn_links_open"):(this.className=a.replace(" open",""),b.className=c.replace(" btn_links_open","")) })存成js文件,然后调用,貌似没效果,是不是还写漏了什么呢?请教。 对了,这个链接是不是写错了?<li><a href="javascript:;" class="aft">视频</a></li> 请教,如果我要完整复制这个功能,把他的ul、li等结构弄下来,附上你给的css部分,和js部分,就能实现了吗?我怎么试了下好像无效……肯定不行啊,给你的截图里的js部分调用了一个knext方法,但是只有调用没有该方法的定义。你只要把这个方法实现了(以a元素为参数找到其对应的那个ul)或者在源代码找到这个方法的定义并放到这段js里,应该就可以了。 说错了。knext方法不是以a元素为参,是以a节点的父节点的父节点(即a所在的ul)为参数~~ 能帮分析下吗?新手看不懂javascript,我就要提取他那个功能了,他的js文件我下载回来了,看了一头雾水,不知道该精简哪些。 CSS部分:<style type="text/css"> .btn_links { padding: 0 0 0 20%; background: #F6F9FE; box-shadow: inset 0 1px 2px #E8EAEF; height: 0; overflow: hidden; } .btn_links_open { overflow: visible; padding: 5px 0 5px 20%; height: auto; }</style>HTML部分:<ul class="btn_list clearfix"> <li><a href="javascript:;" class="aft">视频</a></li> <li><a href="http://m.tv.sohu.com/" stat="82452">搜狐</a></li> <li><a href="http://www.iqiyi.com/" stat="82453">奇艺</a></li> <li><a href="http://www.youku.com/ " stat="90969">优酷</a></li> <li><a href="http://m.letv.com/" stat="82461">乐视</a></li> </ul><ul class="btn_links clearfix"> <li><a href="http://m.tudou.com/wap/index" stat="82457">土豆</a></li> <li><a href="http://m.funshion.com/index" stat="82456">风行</a></li> <li><a href="http://m.baidu.com/video" stat="82455">百度</a></li> <li><a href="http://www.vovokan.com/" stat="88998">窝窝看</a></li> <li><a href="http://www.y80s.com/" stat="82459">80s</a></li> <li><a href="http://m.pps.tv/" stat="82454">PPS</a></li> <li><a href="http://www.qire123.com/" stat="82458">奇热</a></li> <li><a href="http://m.56.com" stat="86678">56视频</a></li> <li><a href="http://v1.roboo.com/proxy/video/search_xcb.jsp" stat="86679">儒豹</a></li> <li><a href="http://m.ku6.com/" stat="86680">酷6</a></li> <li><a href="http://m.joy.cn/" stat="86681">激动</a></li> <li><a href="http://www.tzr1.com/" stat="87674">兔六</a></li> <li><a href="http://y.qq.com/" stat="88999">qq音乐</a></li> <li><a href="http://m1905.cn/" stat="82460">1905</a></li> <li><a href="http://m.duba.com/sp.html" stat="82462">更多</a></li> </ul>js部分:function knext(a) {//这就是那个knext方法 在原js文件的最下面声明的 for (a = a.nextSibling; 1 != a.nodeType; ) a = a.nextSibling; return a}a = document.getElementsByClassName("aft");for (b = 0; b < a.length; b++){ a[b].addEventListener("mousedown", function() { var a = this.className, b = knext(this.parentNode.parentNode), c = b.className; -1 == a.indexOf("open") ? (this.className = a + " open", b.className = c + " btn_links_open") : (this.className = a.replace(" open", ""), b.className = c.replace(" btn_links_open", "")) })}上面的样式html js全都是从源码里面复制过来的,试了下~正常运行。 请教大师,如果在<p>标签里,只要读取了这段<p>标签,就执行一段js代码,应该怎么弄 用javascript如何做数字签名 如何使按钮点击出现选择文件对话框 fullcalendar显示农历问题 求下面页面的三级联动JS代码,望各位帮帮忙,真的是急用~~ 在线等!!!onsize事件 如何做到按TAB键等于按空格键?谢谢了 各位大虾,下面这个程序错在哪里? 服务器响应太慢,js函数没反应 如何获取循环中的span的value啊?求大牛教一下 Jquery 怎么在ie6和chrome里获取一张图片的宽度跟高度? 获取js元素,获取不到?求规范获取父元素下的子元素
我也是看了半天,找不到是啥办法,链接上带有个javascript,其他看不懂了。
(1)html+css:css中先定义好,ul默认为overflow:hidden,类名为btn_links_open的ul为:overflow:visible.
(2)js:js控制类名来实现ul样式的改变。取到视频,彩票...这些li中的a元素,给每个a元素绑定mousedown事件:
鼠标在a上按下的时候,判断a的类名中是否有open===>
->没有就加上open,同时给这个a对应的ul的类名加上加上‘btn_links_open’;
->有就去掉‘open’同时还要给对应的ul的类名中去掉‘btn_links_open’;
请教,如果我要完整复制这个功能,把他的ul、li等结构弄下来,附上你给的css部分,和js部分,就能实现了吗?我怎么试了下好像无效……
<a href="javascript:showhide('xiaoshuo')">小说</a>
<div id="xiaoshuo" style="display:none">小说内容......</div>
<br /><a href="javascript:showhide('shipin')">视频</a>
<div id="shipin" style="display:none">视频内容......</div>
<script type="text/javascript">
function showhide(id) {
var o = document.getElementById(id);
o.style.display = o.style.display == 'block' ? 'none' : 'block';
}
</script>
哦,我一直在研究他那个。好像那个没有指定每个ul的ID吧,是自动获取的吗?你这个给每个div还赋予了一个ID来区分是点击哪个吧?
这个js文件里面
a=document.getElementsByClassName("aft");
for(b=0;b<a.length;b++)
a[b].addEventListener("mousedown",function(){
var a=this.className
,b=knext(this.parentNode.parentNode)
,c=b.className;
-1==a.indexOf("open")?(this.className=a+" open",b.className=c+" btn_links_open"):(this.className=a.replace(" open",""),b.className=c.replace(" btn_links_open",""))})
}
嗯,我就是把这些字符:
a=document.getElementsByClassName("aft");
for(b=0;b<a.length;b++)
a[b].addEventListener("mousedown",function(){
var a=this.className,b=knext(this.parentNode.parentNode),c=b.className;
-1==a.indexOf("open")?(this.className=a+" open",b.className=c+" btn_links_open"):(this.className=a.replace(" open",""),b.className=c.replace(" btn_links_open",""))
})
存成js文件,然后调用,貌似没效果,是不是还写漏了什么呢?请教。
对了,这个链接是不是写错了?
<li><a href="javascript:;" class="aft">视频</a></li>
请教,如果我要完整复制这个功能,把他的ul、li等结构弄下来,附上你给的css部分,和js部分,就能实现了吗?我怎么试了下好像无效……肯定不行啊,给你的截图里的js部分调用了一个knext方法,但是只有调用没有该方法的定义。
你只要把这个方法实现了(以a元素为参数找到其对应的那个ul)或者在源代码找到这个方法的定义并放到这段js里,应该就可以了。
能帮分析下吗?新手看不懂javascript,我就要提取他那个功能了,他的js文件我下载回来了,看了一头雾水,不知道该精简哪些。
CSS部分:
<style type="text/css">
.btn_links {
padding: 0 0 0 20%;
background: #F6F9FE;
box-shadow: inset 0 1px 2px #E8EAEF;
height: 0;
overflow: hidden;
}
.btn_links_open {
overflow: visible;
padding: 5px 0 5px 20%;
height: auto;
}
</style>HTML部分:<ul class="btn_list clearfix">
<li><a href="javascript:;" class="aft">视频</a></li>
<li><a href="http://m.tv.sohu.com/" stat="82452">搜狐</a></li>
<li><a href="http://www.iqiyi.com/" stat="82453">奇艺</a></li>
<li><a href="http://www.youku.com/ " stat="90969">优酷</a></li>
<li><a href="http://m.letv.com/" stat="82461">乐视</a></li>
</ul>
<ul class="btn_links clearfix">
<li><a href="http://m.tudou.com/wap/index" stat="82457">土豆</a></li>
<li><a href="http://m.funshion.com/index" stat="82456">风行</a></li>
<li><a href="http://m.baidu.com/video" stat="82455">百度</a></li>
<li><a href="http://www.vovokan.com/" stat="88998">窝窝看</a></li>
<li><a href="http://www.y80s.com/" stat="82459">80s</a></li>
<li><a href="http://m.pps.tv/" stat="82454">PPS</a></li>
<li><a href="http://www.qire123.com/" stat="82458">奇热</a></li>
<li><a href="http://m.56.com" stat="86678">56视频</a></li>
<li><a href="http://v1.roboo.com/proxy/video/search_xcb.jsp" stat="86679">儒豹</a></li>
<li><a href="http://m.ku6.com/" stat="86680">酷6</a></li>
<li><a href="http://m.joy.cn/" stat="86681">激动</a></li>
<li><a href="http://www.tzr1.com/" stat="87674">兔六</a></li>
<li><a href="http://y.qq.com/" stat="88999">qq音乐</a></li>
<li><a href="http://m1905.cn/" stat="82460">1905</a></li>
<li><a href="http://m.duba.com/sp.html" stat="82462">更多</a></li>
</ul>js部分:function knext(a) {//这就是那个knext方法 在原js文件的最下面声明的
for (a = a.nextSibling; 1 != a.nodeType; )
a = a.nextSibling;
return a
}a = document.getElementsByClassName("aft");
for (b = 0; b < a.length; b++){
a[b].addEventListener("mousedown", function() {
var a = this.className, b = knext(this.parentNode.parentNode), c = b.className;
-1 == a.indexOf("open") ? (this.className = a + " open", b.className = c + " btn_links_open") : (this.className = a.replace(" open", ""), b.className = c.replace(" btn_links_open", ""))
})
}
上面的样式html js全都是从源码里面复制过来的,试了下~正常运行。