2010-05-05 19 views
6

Tôi có một khoảng thời gian, ví dụ:thay đổi văn bản theo định kỳ trong một khoảng từ một mảng với jquery

<p>Here is a sentence <span id="rotate">this</span> is what changes</p> 

và tôi muốn các nội dung của khoảng đó để thay đổi mỗi vài phút giữa một danh sách thuật ngữ, vì vậy nội dung có thể thay đổi thành:

<span id="rotate">then</span> 
<span id="rotate">thus</span> 

v.v. Tôi muốn văn bản mờ đi và sau đó văn bản mới sẽ mờ dần.

Làm cách nào tốt nhất để thực hiện điều này thông qua jquery?

Trả lời

13

Bạn có thể làm một cái gì đó như thế này, lưu trữ các chỉ số hiện hành về các yếu tố xoay sử dụng .data() để hỗ trợ nó nhiều nơi cũng như:

var terms = ["term 1", "term 2", "term 3"]; //array of terms to rotate 

function rotateTerm() { 
    var ct = $("#rotate").data("term") || 0; 
    $("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]) 
       .fadeIn().delay(2000).fadeOut(200, rotateTerm); 
} 
​​​​​​​​​​​​​​​​​​​$(rotateTerm); //start it on document.ready 
​ 

này mất dần các nhiệm kỳ đầu tiên trong, đợi 2 giây, mất dần nó ra , thay đổi văn bản và lặp lại .... chỉ cần điều chỉnh giá trị cho những gì bạn muốn :)

Here's a quick demo so you can see it in action

+0

Câu trả lời hay! Những công việc này. Tuy nhiên, có lẽ bạn có thể giải thích những gì đang xảy ra ở đây? Tôi tò mò biến "ct" có nghĩa là gì? – DavidVII

+1

@DavidBecerra nó chỉ là viết tắt của tôi cho "thuật ngữ hiện tại" - nó không còn đơn giản để mã sạch phù hợp ở đây mà không cần cuộn. –

+0

@NickCraver Điều này là khá cũ, nhưng tôi có một nhu cầu tương tự, tuy nhiên nó là một chút phức tạp hơn. Tôi cần phải xoay 2 chuỗi văn bản khác nhau, một chuỗi nói "sắp ra mắt" bằng 4 ngôn ngữ khác nhau và chuỗi thứ hai cho biết "đăng ký nhận thông báo". Tôi cần những thứ này để đồng bộ hóa/out-out để các ngôn ngữ phù hợp. Tôi đã thử xác định hai vars cho hai mảng, thay đổi id = "rotate" thành một lớp và sau đó thử một câu lệnh if để tải var thích hợp, nhưng nó không hoạt động. Bất kỳ ý tưởng? Ngoài ra, tôi thực sự đã sử dụng khái niệm ở đây http://jsfiddle.net/kMBMp/ nhưng đã sửa đổi cho 2 chuỗi –

Các vấn đề liên quan