Rumah > hujung hadapan web > tutorial js > Lebih banyak bentuk yang boleh digunakan - mengawal kedudukan tatal

Lebih banyak bentuk yang boleh digunakan - mengawal kedudukan tatal

Jennifer Aniston
Lepaskan: 2025-03-06 00:32:11
asal
342 orang telah melayarinya

3

Saya sentiasa mencari cara untuk memperbaiki dan memperbaiki kebolehgunaan aplikasi web saya. Khususnya, saya sentiasa berusaha mencari cara untuk membuat bentuk saya lebih baik kerana, mari kita hadapi: Jika anda membina aplikasi web, anda akan membina borang. Kemungkinan besar, anda akan membina banyak bentuk. More Usable Forms - Controlling Scroll Position

Sesiapa yang telah memerhatikan pengguna purata yang cuba menyelesaikan borang atau satu siri bentuk tahu bahawa pengalaman itu sering mengecewakan. Ambil langkah tambahan untuk meningkatkan kebolehgunaan borang anda- walaupun dengan cara kecil- dan anda benar-benar boleh meningkatkan keramahan pengguna aplikasi anda secara keseluruhan.

Lebih banyak bentuk yang boleh digunakan - mengawal kedudukan tatal Satu teknik yang boleh anda gunakan untuk meningkatkan kebolehgunaan borang anda adalah untuk mengekalkan skrol halaman selepas pasca-backs. Anda mungkin ingin menggunakan fungsi ini dalam halaman carian, sebagai contoh, di mana pengguna boleh menyusun hasilnya mengikut lajur. Sekiranya anda berada di bahagian atas halaman A dari yang menerima parameter carian, dan anda memaparkan hasil di bawah, ia boleh menjadi sangat menjengkelkan bagi pengguna untuk menatal ke bawah halaman melepasi parameter ke hasil setiap kali mereka mahu menyusun hasilnya dengan lajur yang diberikan. Nasib baik, kita boleh melakukan sesuatu tentang ini.

Penyelesaian

Dalam tutorial ini, saya akan menunjukkan kepada anda betapa mudahnya untuk mengekalkan kedudukan tatal halaman apabila jawatan halaman borang kembali kepada dirinya sendiri. Walaupun saya telah mengodkan contoh di ColdFusion, teknik ini dapat dengan mudah dipindahkan ke bahasa lain.

Terdapat hanya dua perkara yang perlu anda lakukan untuk membuat teknik ini berfungsi. Anda perlu menulis beberapa JavaScript untuk merebut koordinat X dan Y semasa halaman anda dan meletakkannya dalam bentuk supaya ia dikemukakan apabila anda menghantar kembali ke halaman semasa. Kemudian, anda perlu mengambil koordinat tatal X dan Y dan, melalui gabungan skrip pelayan dan klien, tetapkan koordinat tatal halaman apabila ia dimuat semula. Sekeping kek!

kod borang

Saya menggunakan bentuk tulang telanjang di sini supaya anda benar-benar boleh memberi tumpuan dengan jelas pada mekanik bagaimana proses berfungsi, sebaliknya mewujudkan halaman carian yang lebih rumit dari jenis yang saya nyatakan di atas. Sebaik sahaja anda tahu bagaimana untuk mendapatkan sesuatu yang berfungsi, anda boleh menyesuaikan contoh ini dengan mudah dengan keperluan anda sendiri dan menjadi pandai seperti yang anda mahu.

Halaman borang ini tidak melakukan apa -apa yang istimewa pada masa ini. Ia hanya menyiarkan kembali kepada dirinya sendiri, lulus parameter nama. Saya telah mengodkan perenggan dan nombor supaya kami mempunyai kandungan yang boleh ditatal pada halaman, dan supaya kami mempunyai panduan visual untuk membantu menilai sejauh mana halaman itu telah menatal secara menegak (ambil perhatian bahawa skrip ini akan memelihara kedua -dua skrol menegak dan mendatar, walaupun).
Penjejakan tatal

Langkah pertama ialah menambah beberapa JavaScript untuk mendapatkan nilai tatal X dan Y dan memasukkannya ke dalam bentuk. Untuk melakukan ini, kami perlu menambah dua input tersembunyi ke borang kami bersama -sama dengan beberapa baris JavaScript yang akan merebut nilai tatal semasa apabila borang diserahkan dan lulus kepada input tersembunyi. Fungsi SavesCrollCoordinates () akan melihat sokongan penyemak imbas untuk Document.all dan gunakan rujukan yang betul untuk merebut nilai tatal dan mengemas kini input borang dengan sewajarnya. Kami akan menggunakan pengendali acara onSubmit () dalam borang kami untuk memanggilnya dalam contoh ini.

Saya telah mengodkan medan tersembunyi yang menyimpan nilai tatal sebagai medan teks dalam contoh ini, jadi jika anda mempunyai mata yang cepat, anda dapat melihat bagaimana nilai berubah sebelum borang diserahkan.

<cfparam name="FORM.name" default="Testing"> <br>
 <br>
<html> <br>
<head> <br>
   <title>Test</title> <br>
</head> <br>
<body> <br>
 <br>
<form name="Form1"  <br>
   method="POST"  <br>
   action="<cfoutput>#CGI.SCRIPT_NAME#</cfoutput>"> <br>
 <br>
   <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p>  <br>
   <p>6</p> <p>7</p> <p>8</p> <p>9</p> <p>10</p> <br>
 <br>
   <hr width="2000"> <br>
 <br>
   <nobr> <br>
   Name: <input type="text" name="name" value="<cfoutput>#FORM.name#</cfoutput>"> <br>
   <input type="submit" value="Submit"></nobr> <br>
 <br>
   <hr width="2000"> <br>
    <br>
   <p>11</p> <p>12</p> <p>13</p> <p>14</p> <p>15</p>  <br>
   <p>16</p> <p>17</p> <p>18</p> <p>19</p> <p>20</p> <br>
 <br>
</form> <br>
 <br>
</body> <br>
</html>
Salin selepas log masuk

Langkah kedua ialah mengambil nilai -nilai yang diluluskan dengan bentuk dan melakukan sesuatu dengan mereka. Untuk ini, kita perlu menambah beberapa baris JavaScript dengan hanya sentuhan ColdFusion. Pertama, kami akan memasukkan dua tag cfParam tambahan di bahagian atas halaman supaya kami mempunyai beberapa nilai tatal lalai untuk berfungsi pada setiap beban halaman. Kemudian, kami akan menentukan fungsi scrollTocoordinates () untuk menetapkan skrol halaman dan memanggilnya apabila halaman memuat menggunakan onload () pengendali acara dalam tag

.
<cfparam name="FORM.name" default="Testing"> <br>
 <br>
<html> <br>
<head> <br>
   <title>Test</title> <br>
<script language=javascript> <br>
function saveScrollCoordinates() { <br>
   document.Form1.scrollx.value = (document.all)?document.body.scrollLeft:window.pageXOffset; <br>
   document.Form1.scrolly.value = (document.all)?document.body.scrollTop:window.pageYOffset; <br>
} <br>
</script> <br>
</head> <br>
<body> <br>
 <br>
<form name="Form1"  <br>
   method="POST"  <br>
   onSubmit="saveScrollCoordinates()"  <br>
   action="<cfoutput>#CGI.SCRIPT_NAME#</cfoutput>"> <br>
 <br>
   <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p>  <br>
   <p>6</p> <p>7</p> <p>8</p> <p>9</p> <p>10</p> <br>
 <br>
   <hr width="2000"> <br>
 <br>
   <nobr> <br>
   Name: <input type="text" name="name" value="<cfoutput>#FORM.name#</cfoutput>"> <br>
<input type="text" name="scrollx" value="0"> <br>
   <input type="text" name="scrolly" value="0"> <br>
   <input type="submit" value="Submit"></nobr> <br>
 <br>
   <hr width="2000"> <br>
    <br>
   <p>11</p> <p>12</p> <p>13</p> <p>14</p> <p>15</p>  <br>
   <p>16</p> <p>17</p> <p>18</p> <p>19</p> <p>20</p> <br>
 <br>
</form> <br>
 <br>
</body> <br>
</html>
Salin selepas log masuk

Berikut adalah pecahan main-main yang menerangkan apa yang berlaku apabila pengguna mengklik butang untuk menyerahkan borang:

    Fungsi SaveScrollCoordinates () dilaksanakan oleh pengendali acara onSubmit ().
  1. SaveScrollCoordinates () mengemas kini input scrollx dan scrolly tersembunyi dengan nilai yang sesuai.

  2. Borang borang kembali ke halaman yang sama.

  3. Parameter bentuk ColdFusion scrollx dan scrolly menetapkan koordinat tatal dalam fungsi scrollTocoordinates ().

  4. pengendali acara onload () dalam tag memanggil fungsi scrollTocoordinates ().

  5. Ciri -ciri skrol tetingkap diselaraskan mengikut koordinat yang diluluskan.

menguji borang dan anda akan melihat bahawa tidak kira di mana anda menatal, apabila anda menghantar halaman, anda berakhir di tempat yang sama di mana anda memulakan kedua -dua menegak dan mendatar. Untuk lebih baik menguji tatal mendatar, ubah saiz penyemak imbas anda supaya ia sangat sempit, kemudian serahkan borang. Skrol X dan Y anda dipelihara secara automatik cara alternatif untuk mencapai kegunaan ini HREF sauh, tetapi berbuat demikian tidak hampir tepat atau licin.

membungkus

bagaimana dengan contoh yang saya berikan di atas, di mana kami mempunyai halaman carian yang mengandungi borang input dan hasil yang boleh disusun mengikut lajur? Dalam hal ini, anda mungkin akan mengemukakan borang dan melaksanakan sedikit SQL dengan nilai yang sedikit berbeza apabila pengguna memilih untuk mengklik tajuk lajur untuk disusun. Jika anda mengemas kini beberapa input tersembunyi dengan lajur jenis baru dan susun arah, ia harus menjadi tugas yang mudah untuk menambah ciri ini ke halaman anda. Anda hanya perlu memasukkan input tersembunyi tambahan ke dalam borang anda dan memasukkan JavaScript yang dibentangkan di sini ke JavaScript anda sendiri. Pautan jenis anda boleh menggunakan pengendali acara OnClick () untuk mengemas kini nilai tatal tersembunyi dan serahkan borang anda.

Apa yang saya tunjukkan anda hanyalah contoh mudah teknik ini. Kod di sini telah diuji menggunakan Internet Explorer 6 dan Mozilla Firefox untuk Windows, dan Safari pada Mac. Gunakan idea di sebalik teknik ini sebagai titik permulaan. Sapukan kreativiti dan kemahiran anda sendiri untuk menambah rasa yang lebih digilap, intuitif kepada bentuk yang anda gunakan dalam aplikasi anda.

soalan yang sering ditanya mengenai memelihara kedudukan tatal halaman

Bagaimanakah saya dapat mengekalkan kedudukan tatal halaman menggunakan CSS? Harta ini menentukan sama ada menatal harus lancar atau melompat. Untuk membuat kedudukan tatal lancar, anda boleh menggunakan 'tatal-tingkah laku: lancar'. Ini akan membuat peralihan dari satu bahagian halaman ke yang lain yang lebih lancar, dengan itu memelihara kedudukan tatal. Ia membolehkan anda menyimpan kedudukan tatal dalam pembolehubah dan kemudian menggunakannya kemudian untuk memulihkan kedudukan. Ini amat berguna apabila anda ingin mengekalkan kedudukan tatal selepas halaman menyegarkan atau apabila menavigasi kembali ke halaman. Harta ini menentukan arah teks dan di mana bar skrol perlu diletakkan. Sebagai contoh, jika anda mahu bar skrol berada di sebelah kiri, anda boleh menggunakan 'arah: rtl', dan untuk hak, anda boleh menggunakan 'arah: ltr'. arah. Harta ini amat berguna apabila anda ingin mengawal penjajaran snap tatal.

Bagaimana saya boleh menunjukkan kedudukan tatal pada halaman dengan CSS?

yang menunjukkan kedudukan tatal pada halaman dengan CSS dapat dicapai dengan menggunakan harta 'kedudukan'. Harta ini membolehkan anda meletakkan elemen berhubung dengan viewport, yang boleh digunakan untuk menunjukkan kedudukan tatal. Sebagai contoh, anda boleh menggunakan 'kedudukan: melekit' untuk membuat elemen melekat pada viewport, dengan itu menunjukkan kedudukan tatal. Ciri-ciri ini membolehkan anda mengawal kedudukan tatal dan menjadikannya snap ke titik-titik tertentu. lokasi sasaran. Hartanah 'licin' berguna apabila anda ingin membuat peralihan dari satu bahagian halaman ke yang lain yang lebih lancar, sementara harta 'auto' berguna apabila anda ingin melompat ke lokasi tertentu. Kemudian, anda boleh menggunakan kaedah 'window.scrollto' untuk memulihkan kedudukan tatal. Ini amat berguna apabila anda ingin mengekalkan kedudukan tatal selepas halaman menyegarkan atau apabila menavigasi kembali ke halaman. Harta ini menentukan di mana elemen harus diselaraskan apabila snap tatal berlaku. Sebagai contoh, anda boleh menggunakan 'SCROLL-SNAP-ALIGN: Mula' untuk menyelaraskan elemen pada permulaan bekas. Harta ini meletakkan elemen berdasarkan kedudukan tatal pengguna. Sebagai contoh, anda boleh menggunakan 'kedudukan: melekit; Atas: 0 'untuk membuat elemen melekat ke bahagian atas viewport.

Atas ialah kandungan terperinci Lebih banyak bentuk yang boleh digunakan - mengawal kedudukan tatal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan