Bagaimana untuk mendapatkan pengisytiharan gaya lengkap watak dalam IText menggunakan FabricJS?

王林
Lepaskan: 2023-09-17 11:57:03
ke hadapan
791 orang telah melayarinya

Bagaimana untuk mendapatkan pengisytiharan gaya lengkap watak dalam IText menggunakan FabricJS?

Dalam tutorial ini, kita akan belajar cara mendapatkan pengisytiharan gaya lengkap watak dalam IText menggunakan FabricJS. Kelas IText telah diperkenalkan dalam FabricJS versi 1.4, yang memanjangkan Fabric.Text dan digunakan untuk mencipta kejadian IText. Kejadian IText memberi kita kebebasan untuk memilih, memotong, menampal atau menambah teks baharu tanpa konfigurasi tambahan. Terdapat juga pelbagai kombinasi kekunci yang disokong dan kombinasi tetikus/sentuh untuk menjadikan teks interaktif yang tidak tersedia dalam Teks.

Walau bagaimanapun, Textbox berasaskan IText membolehkan kami mengubah saiz segi empat tepat teks dan membalutnya secara automatik. Ini tidak berlaku untuk IText, kerana ketinggian tidak melaras berdasarkan pemisah baris. Kita boleh memanipulasi objek IText dengan menggunakan pelbagai sifat. Begitu juga, kita boleh mendapatkan pengisytiharan gaya lengkap watak menggunakan kaedah getCompleteStyleDeclaration.

tatabahasa

getCompleteStyleDeclaraction(lineIndex: Number, charIndex: Number): Object
Salin selepas log masuk

parameter

  • lineIndex - Parameter ini menerima Nombor yang menentukan nombor baris bagi aksara yang diperlukan.

  • charIndex - Parameter ini menerima nombor yang menunjukkan kedudukan watak pada baris.

Contoh 1

Gunakan kaedah GetCompleteStyleDeclaration

Mari kita lihat contoh kod untuk melihat rupa objek IText apabila menggunakan kaedah getCompleteStyleDeclaration. Dalam kes ini, kami mengembalikan pengisytiharan gaya penuh untuk aksara kedua baris 0. Watak telah diberikan warna latar belakang teks kuning muda.

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Using the getCompleteStyleDeclaration method</h2>
   <p>You can open console from dev tools and see the style declaration for 2nd character of the first line</p>
   <canvas id="canvas"></canvas>
   
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);

      // Initiate an itext object
      var itext = new fabric.IText(
         "Add sample text here.Lorem ipsum dolor sit ametconsectetur adipiscing elit.",{
            width: 300,
            left: 60,
            top: 70,
            fill: "red",
            styles: {
               0: {
                  1: {
                     textBackgroundColor: "rgba(253,255,214,0.9)",
                  },
               },
            },
         }
      );

      // Add it to the canvas
      canvas.add(itext);

      // Using getCompleteStyleDeclaration method
      console.log(
         "The style object is as follows: ",
         itext.getCompleteStyleDeclaration(0, 1)
      );
   </script>
</body>
</html>
Salin selepas log masuk

Contoh 2

Gunakan kaedah getCompleteStyleDeclaration untuk perbandingan

Mari lihat contoh kod untuk membandingkan pengisytiharan gaya untuk dua aksara pada indeks yang sama dalam dua baris berbeza. Dalam contoh ini, kami telah memilih aksara kedua dalam baris 1 dan baris 2, jadi ia telah diserlahkan dengan warna latar belakang teks yang berbeza. Memandangkan kami menetapkan warna isian yang berbeza, textBackgroundColor dan fontSize untuk kedua-dua aksara ini, nilai ini akan ditunjukkan dalam konsol kami dan kami akan dapat membandingkan perubahan tersebut.

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Using the getCompleteStyleDeclaration method for comparison</h2>
   <p>You can open console from dev tools and see the style declaration for both lines</p>
   <canvas id="canvas"></canvas>

   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);

      // Initiate an itext object
      var itext = new fabric.IText(
         "Add sample text here.Lorem ipsum dolor sit amet",{
            width: 300,
            left: 60,
            top: 70,
            fill: "red",
            styles: {
               0: {
                  1: {
                     textBackgroundColor: "rgba(130,111,201,0.6)",
                     fontSize: 30,
                     fill: "black",
                  },
               },
               1: {
                  1: {
                     textBackgroundColor: "rgba(52,235,189,0.5)",
                     fontSize: 90,
                     fill: "green",
                  },
               },
            },
         }
      );

      // Add it to the canvas
      canvas.add(itext);

      // Using getCompleteStyleDeclaration method
      console.log(
         "The style object for 2nd character of 1st line is as follows: ",
         itext.getCompleteStyleDeclaration(0, 1)
      );
      console.log(
         "The style object for 2nd character of 2nd line is as follows: ",
         itext.getCompleteStyleDeclaration(1, 1)
      );
   </script>
</body>
</html>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan pengisytiharan gaya lengkap watak dalam IText menggunakan FabricJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!