2014-02-20 5 views
2

Я хочу затушить символ в строке, так что Whatever превращается в Wha ever.Есть ли простой способ анимировать определенный символ в строке?

$('p[2]').animate({ opacity: 0 }); 

Fiddle

Я хотел бы сделать это без упаковки каждого письма в HTML-теги, если это возможно.

+2

Вы должны обернуть каждый символ в тег, чтобы сделать это. 'p [2]' в jQuery ищет тэг p с атрибутом с именем 2. – elclanrs

+0

Хорошо, я надеялся избежать этого. Без него нет возможности? – Squirrl

+0

@Squirrl это не идентификатор, это проблема, это расщепляется, как работает селектор, поскольку они нацелены на элементы, а не на текст. –

ответ

4

Вам необходимо обернуть символ, который вы хотите использовать, чтобы применить эффект к этому элементу.

Try:

var hideLetter = function(element, position) { 
    var str = $(element).text(), 
     nstr = str.substr(0, position) + '<span>' + str.substring(position, position + 1) + '</span>' + str.substring(position + 1); 

    $(element).html(nstr); 

    $(element).find('span').animate({ 
     opacity: 0 
    }); 
}; 

hideLetter('p', 2); 

Fiddle

+0

Ницца. Это интересно. Благодарю. – Squirrl

1

Смотрите, если это помогает http://jsfiddle.net/EP3nR/5/

// Wrap each letter in a span tag 
$('p').html(function(){ 
    return this.textContent.replace(/./g,'<span>$&</span>'); 
}); 

// Get 3rd char and hide it 
var char = $('p').find('span').eq(2).animate({opacity:0}).text(); 

// The char that was hidden 
$('h1').text(char); 

Вы также можете добавить символ после он получает скрытом, используя функцию обратного вызова:

$('p').find('span').eq(2).animate({opacity: 0}, function() { 
    $('h1').text(this.textContent); 
}); 
+0

Хороший ответ тоже. Слайд с '$ &'. Благодарю. – Squirrl

Смежные вопросы