在悬停时滚动文本div并返回第一个元素

时间:2012-01-29 09:52:18

标签: javascript jquery

如何更换" home"当我将鼠标悬停在它上面而不是重复自己时,用另一个文本按钮?

<ul class="topnav">
<li><a href="#">Home</a></li>
</ul>


jQuery(function($) {

    $('.topnav li').find('a[href]').parent().each(function(span, li){
        li = $(li); span = $('<span>' + li.find('a').html() + '<\/span>');
        li.hover(function(){
        span.stop().animate({marginTop: '-60'}, 250);
        }, function(){
        span.stop().animate({marginTop: '0'}, 250);
        }).prepend(span);
    });

});

以下是示例:http://jsfiddle.net/fxdigi/3YNHp/1/

2 个答案:

答案 0 :(得分:1)

检查我的变体http://jsfiddle.net/3YNHp/5/

它使用标记:

<ul class="topnav">
    <li>
        <a href="#" data-hover-text="Mohe">Home</a>
    </li>
</ul>

改变了javascript:

$('.topnav li').find('a[href]').parent().each(function() {
    var li   = $(this),
        a    = li.find('a'),
        span = $('<span>' + a.data('hover-text') + '<\/span>');

    li.hover(function() {
        a.stop().animate({marginTop: '-64'}, 250);
    },
    function() {
        a.stop().animate({marginTop: '0'}, 250);
    })
    .append(span);
});

答案 1 :(得分:0)

您需要做的是将您想要显示的文字悬停在锚点中,以便像这样开始

<ul class="topnav">
<li data-orig="Home"><a href="#">Go to</a></li>
</ul>

然后在数据属性中放置您想要显示的文本。

然后稍微修改javascript以提取新值。

jQuery(function($) {

    $('.topnav li').find('a[href]').parent().each(function(span, li){
        li = $(li); span = $('<span>'+ li.attr('data-orig') +'<\/span>');
        li.hover(function(){
        span.stop().animate({marginTop: '-60'}, 250);
        }, function(){
        span.stop().animate({marginTop: '0'}, 250);
        }).prepend(span);
    });

});