Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript melaksanakan tatal automatik jalur teks

JavaScript melaksanakan tatal automatik jalur teks

PHPz
PHPzasal
2023-05-10 09:15:36980semak imbas

JavaScript ialah bahasa pengaturcaraan yang sangat popular Ia digunakan terutamanya untuk pembangunan web dan boleh melaksanakan pelbagai fungsi yang kaya. Hari ini, kami akan memperkenalkan cara menggunakan JavaScript untuk melaksanakan fungsi tatal automatik nota untuk memenuhi keperluan pengguna dengan lebih baik.

1. Analisis Keperluan

Fungsi yang perlu kami laksanakan ialah bar teks dinamik yang menatal secara automatik supaya lebih banyak kandungan boleh dipersembahkan pada halaman tanpa menjejaskan reka letak halaman. Pelaksanaan khusus perlu mengambil kira aspek berikut:

  1. Kandungan teks nota: Kita perlu menentukan kawasan pada halaman untuk memaparkan kandungan teks nota dan kandungan teks perlu dimuatkan secara dinamik.
  2. Kelajuan menatal nota: Kami berharap dapat melaraskan kelajuan menatal nota agar lebih sesuai dengan keperluan pengguna yang berbeza.
  3. Arah penatalan bar teks: Kita perlu mempertimbangkan arah penatalan bar teks, sama ada ia menatal ke kiri, kanan, atas atau bawah.
  4. Masa tinggal nota: Kita perlu mempertimbangkan masa tinggal nota apabila ia menatal ke penghujung, supaya pengguna mempunyai masa yang mencukupi untuk membaca kandungan nota.

2. Reka bentuk penyelesaian

Berdasarkan analisis permintaan di atas, kami boleh mereka bentuk penyelesaian berikut:

  1. Buat elemen HTML untuk memaparkan teks daripada kandungan nota. Kita boleh menggunakan elemen div dan menetapkan gaya CSS yang sesuai untuknya supaya ia dipaparkan pada halaman dalam kedudukan yang sesuai.
  2. Gunakan JavaScript untuk memuatkan kandungan teks nota secara dinamik. Kita boleh menggunakan objek XMLHttpRequest untuk memulakan permintaan kepada pelayan, mendapatkan kandungan teks nota dan menetapkannya ke dalam elemen HTML.
  3. Tetapkan kelajuan menatal jalur teks melalui JavaScript. Kita boleh menggunakan fungsi setInterval untuk mengira secara tetap kedudukan mengimbangi bar teks dan mengemas kini maklumat kedudukan elemen HTML untuk menghasilkan kesan tatal.
  4. Tetapkan arah menatal jalur teks melalui JavaScript. Kita boleh menentukan pembolehubah arah untuk merekodkan arah menatal nota, dan menukar maklumat kedudukan nota berdasarkan nilai pembolehubah.
  5. Tetapkan masa tinggal nota melalui JavaScript. Kita boleh menggunakan fungsi setTimeout untuk menetapkan masa tinggal apabila nota menatal ke penghujung, supaya pengguna mempunyai masa yang mencukupi untuk membaca kandungan nota.

3. Pelaksanaan kod

Berdasarkan reka bentuk skema di atas, kita boleh menulis kod berikut:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript实现字条自动滚动</title>
<style>
#box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 20px;
    color: #fff;
    background-color: #000;
    padding: 10px;
}

</style>
</head>
<body onLoad="init()">
    <div id="box"></div>
    <script>
    var direction = 1; // 1代表向左滚动,-1代表向右滚动
    var speed = 50; // 滚动速度,单位是像素/秒
    var pauseTime = 5000; // 停留时间,单位是毫秒
    var timer = null;
    var p1 = 0;
    var p2 = 0;

    function init() {
        loadText();
        setInterval(scrollText, 20);
    }

    function loadText() {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("box").innerHTML = this.responseText;
                p2 = document.getElementById("box").offsetWidth + 10;
            }
        };
        xhttp.open("GET", "text.txt", true);
        xhttp.send();
    }

    function scrollText() {
        var box = document.getElementById("box");

        if (direction == 1) {
            p1 += speed / 50;
            if (p1 > p2) {
                direction = -1;
                setTimeout(function(){direction = 1;}, pauseTime);
            }
        } else {
            p1 -= speed / 50;
            if (p1 < -box.offsetWidth) {
                direction = 1;
                setTimeout(function(){direction = -1;}, pauseTime);
            }
        }

        box.style.left = p1 + "px";
    }
    </script>
</body>
</html>

Perihalan kod:

  1. Dalam Tentukan elemen div dengan id "kotak" dalam halaman HTML untuk memaparkan kandungan teks nota. Dan tetapkan beberapa gaya CSS dan beberapa acara JavaScript untuknya untuk memulakan kandungan halaman apabila halaman dimuatkan.
  2. Tentukan beberapa pembolehubah dalam JavaScript untuk menyimpan arah penatalan, kelajuan penatalan, masa tinggal, pemasa dan maklumat lain yang berkaitan dengan nota.
  3. Gunakan objek XMLHttpRequest untuk meminta pelayan mendapatkan kandungan teks nota dan menetapkannya ke dalam elemen HTML.
  4. Gunakan fungsi setInterval untuk mengira dan mengemas kini maklumat kedudukan elemen HTML secara kerap untuk menghasilkan kesan tatal. Semasa proses pengiraan, maklumat kedudukan elemen HTML diubah mengikut nilai pembolehubah arah.
  5. Apabila menatal ke penghujung, gunakan fungsi setTimeout untuk menunggu satu tempoh masa supaya pengguna mempunyai masa yang mencukupi untuk membaca kandungan nota.

4. Ringkasan

Artikel ini memperkenalkan cara menggunakan JavaScript untuk merealisasikan fungsi tatal automatik nota. Melalui analisis keperluan, kami mereka bentuk penyelesaian yang agak lengkap dan menerangkannya melalui demonstrasi kod sebenar. Saya berharap melalui pengenalan artikel ini, anda boleh mempunyai pemahaman yang lebih mendalam tentang aplikasi JavaScript dan dapat memenuhi keperluan pengguna dengan lebih baik dalam kerja pembangunan anda.

Atas ialah kandungan terperinci JavaScript melaksanakan tatal automatik jalur teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn