2017-05-06 1 views
0

내가하려는 것은 텍스트 단락을 만들고 CSS 속성을 적용한 다음 해당 속성을 문자열 전체에 500ms 씩 이동하는 것입니다. jQuery로 문자열을 통한 속성 이동

$(document).ready(function(){ 
$("p").css("color","red"); 
}); 

나는, CSS는 한 번에 하나의 단어에 적용하는 것이이 문자열에 199 0에서 점진적으로 이동하는 수의 내가 내 단락에 200 개 단어가 있다고 가정 해 봅시다? 하나의 단어를 빨간색으로, 다음으로 다음 단어로.

답변

1

당신은 (당신은 또한 CSS를 통해 거기에 몇 가지 전환 효과를 추가 할 수 있습니다) 클래스를 추가하여, 이런 식으로 할 수있는 :

var p = $('.highlight-words') 
 
var words = p.text().split(' '); 
 
var toAppend = []; 
 
$.each(words, function(i, v) { 
 
    toAppend.push('<span>' + v + '</span>'); 
 
}); 
 
p.html(toAppend.join(' ')); 
 
var spans = p.find('span'); 
 
function delayClass(elem, delay) { 
 
\t setTimeout(function() { 
 
    \t elem.prev().removeClass('highlighted'); 
 
    \t elem.addClass('highlighted'); 
 
    }, delay); 
 
}; 
 
var delay = 0; 
 
spans.each(function(i, span) { 
 
\t delayClass($(span), delay); 
 
    delay += 500; 
 
});
.highlighted { 
 
    color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="highlight-words">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

또한 JSFiddle에.

+0

내용을'.text()'로 취하지 만'.html()'로 다시 설정하십시오. 텍스트의 HTML 식 표현이 해석되어 잠재적으로 보안 문제가 발생할 수 있습니다. –

+0

내부에 걸쳐 있으므로'.html()'을 통해 설정해야합니다. 보안 문제가 여기에서 일어날 수있는 것은,'.text()'는 HTML과 같은 표현식을 이미 제거하고 있습니까? – skobaljic