十一月
09

关于下拉菜单的显示的两种jQuery方法

提高访客体验,各个网站有不同的方法,如添加滑动锚点,Ajax无刷新异步效果及各种特效。

有的时候我们会用到一长窜的列表,包含在<li>标签中,如rss订阅的选择。这些结构一般都是:

<div id=”rssfeed”>
         <ul id=””>
                 <li>rss1</li>
                 <li>rss2</li>
                      ……
         </ul>
</div>

 

如果直接在页面上显示出来,显得既长又无美感,我们可以将一长串的这些隐藏起来,需要时再显示即可。

关于鼠标动作,JavaScript里定义了mouseovermouseout来标识鼠标在目标上的移上移下,还有一种,就是css里定义.hover,写过接触过基本网页知识都应该知道这是鼠标放到链接目标上的属性定义。所以,我们就有了两种方法来实现隐藏目标<ul>的方法。

最简单的做法是用jQuery来实现,jQuery强大的选择器功能可以让我们少些很多JavaScript代码,而且其提供了很好的简单易用动画效果。

第一种,mouseover和mouseout。Demo请查看本站右上角RSS Feed效果

html结构为:

<a href="/feedurl" id="#feedrss">rssfeed<a>
            <ul id="theli">
                <li><a href="">feedtool</a><li>
                <li><a href="">feedtool</a><li>
                <li><a href="">feedtool</a><li>
                    ……
            </ul>

JavaScript代码为:

$(document).ready(function(){
$(‘#feedrss, #theli’).mouseover(function() {
if(window.cool) clearTimeout(window.cool);//清除时间设定
$(‘#theli’).slideDown("slow");//设置显示及显示的效果
});
$(‘#feedrss,#theli’).mouseout(function() {
window.cool = setTimeout(function() {//设置延时执行
$(‘theli’).fadeOut(20);//设置隐藏及隐藏的效果
}, 200);
});
});

第二种,.hover模式。查看Demo

这个方法需要配合css,将包含li的<ul>设置为隐藏display:none;

html结构:

<li class="feed">
        <a class="rssfeed">feerss</a>
            <ul>
                <li><a href="#" rel="nofollow">鲜果订阅</a></li>
                <li><a href="#" rel="nofollow">Google订阅</a></li>
                <li><a href="#" rel="nofollow">抓虾订阅</a></li>
                <li><a href="#" rel="nofollow">有道订阅</a></li>
                <li><a href="#" rel="RSS">更多方式 &raquo;</a></li>
            </ul>
    </li>

其中css中要先设置 li.feed ul{display:none;}/*隐藏掉ul*/
                           a.rssfeed{cursor:pointer;}/*鼠标移上去变为手指状*/

javascript代码:

$(function(){
$(".dropdown").hover( //设定包含feed属性的对象的.hover属性
function(){ $("li ul").slideToggle(800);}, //包含li 的 ul,用slideToggle()方法显现
function(){$("li ul").slideUp(800)}
) ;
});

OK,完毕,有错误欢迎指正。

 


——by qiqiboy

本文标签: , , ,

分享

本文短网址: http://qiqi.boy.im/19

这篇文章已经有 17 条评论

Comments (17) Trackbacks (0)
You can leave a response or Trackback this entry .
  1. 先看看 -#1

    改天也来弄一个看看

  2. nephew -#2

    滑动效果很养眼呀……

  3. 卢松松 -#3

    不是用CSS也可以实现吗。。

  4. 90后的贼 -#4

    看起来有点复杂

  5. 万戈 -#5

    效果很帅啊~可以尝试下

  6. 男儿国博客 -#6

    收藏了 以后应该能用到

  7. qiqiboy -#7

    @卢松松
    用jQuery是为了实现动画效果的显隐。。。

    @90后的贼
    用好jQuery的选择器就容易多了

  8. 小新说 -#8

    啊!要出去有事,先占位,一会回来学习,正需要这个 :smile:

  9. neoear -#9

    如果缩回也有滑动效果,更好

  10. qiqiboy -#10

    :sad: @neoear
    缩回是可以有滑动效果的。。。。.fadeOut(20);中参数20就是时间,我故意设置了20毫秒,几乎看不出来了。。这个是渐隐效果。。。要缩回可以用slideUp()等方法。。。不过有些不稳定。不明原因的乱抖。。。所以没用

  11. 疾风 -#11

    纯CSS的好~

  12. 路过的校友 -#12

    楼主厉害啊。

  13. QiQiBoY -#13

    @路过的校友
    校友好。。。。

  14. bolo -#14

    用hover比较简单

  15. 冰剑 -#15

    昨天弄下拉,弄了很久都没弄好,郁闷。。

  1. No trackbacks yet.

Leave a Reply

Hi , say something.

  • :?:
  • :razz:
  • :sad:
  • :evil:
  • :!:
  • :smile:
  • :oops:
  • :grin:
  • :eek:
  • :shock:
  • :???:
  • :cool:
  • :lol:
  • :mad:
  • :twisted:
  • :roll:
  • :wink:
  • :idea:
  • :arrow:
  • :neutral:
  • :cry:
  • :mrgreen: