Introducción
En este proyecto, aprenderás cómo construir un simple lector de libros electrónicos utilizando Vue 2.x. El lector de libros electrónicos permitirá a los usuarios alternar la visibilidad de la barra de herramientas del encabezado, establecer el tema de lectura y ajustar el tamaño de fuente del contenido de texto.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderás:
- Cómo implementar la alternancia de la visibilidad de la barra de herramientas del encabezado
- Cómo implementar la configuración del tema de lectura
- Cómo implementar la configuración del tamaño de fuente
🏆 Logros
Después de completar este proyecto, podrás:
- Utilizar Vue.js para crear interfaces de usuario interactivas
- Manejar interacciones de usuario y actualizar la interfaz de usuario en consecuencia
- Dar estilo dinámicamente a los elementos según las preferencias del usuario
- Asegurarte de que la aplicación siga siendo receptiva y accesible
Implementar la alternancia de la visibilidad de la barra de herramientas del encabezado
Para comenzar, observa la estructura de directorios de los archivos a la izquierda, que es la siguiente:
├── index.html
├── css
└── js
└── vue.js
Donde:
index.htmles la página principal y el siguiente archivo que necesitas modificar.csses la carpeta para los archivos de estilo.js/vue.jses el archivo de Vue 2.x.
A continuación, realizarás todo en el archivo index.html.
En este paso, aprenderás cómo implementar la alternancia de la visibilidad de la barra de herramientas del encabezado. Sigue los pasos a continuación para completar este paso:
- Abre el archivo
index.html, define la variableisShowToolsendatabajoel: "#app"para controlar la visualización de la barra de herramientas del encabezado, con un valor predeterminado detruepara mostrar la barra de herramientas del encabezado.
data: {
isShowTools: true,
//...
}
- Envuelve el contenido de la barra de herramientas del encabezado (el elemento
<div class="header">) en un elemento<transition>con la directivav-if, vinculándolo a la propiedad de datosisShowTools. Esto asegurará que la barra de herramientas del encabezado solo sea visible cuandoisShowToolsseatrue.
<transition v-if="isShowTools" name="fade">
<div class="header">
<!-- contenido de la barra de herramientas del encabezado -->
</div>
</transition>
- En el archivo
index.html, localiza el elemento<a>con la claseiconfont icon-setting. Este elemento se utiliza para alternar la visibilidad de la barra de herramientas del encabezado. - Agrega una directiva
@clickal elemento<a>y vincúlala a un métodoshowToolsen la instancia de Vue. Este método alternará la propiedad de datosisShowTools, que controla la visibilidad de la barra de herramientas del encabezado.
<a @click="showTools" class="iconfont icon-setting"></a>
- En la instancia de Vue, agrega el método
showToolsal objetomethods. Este método debe alternar el valor de la propiedad de datosisShowTools.
methods: {
showTools() {
this.isShowTools =!this.isShowTools;
},
}
- Agrega un icono
closea la barra de herramientas del encabezado y vincula una directiva@clickal métodoshowToolspara permitir al usuario cerrar la barra de herramientas del encabezado.
<li class="container">
<a @click="showTools" class="iconfont icon-close"></a>
</li>
Implementar la configuración del tema de lectura
En este paso, aprenderás cómo implementar la configuración del tema de lectura. Sigue los pasos a continuación para completar este paso:
- Define la variable
isActiveColoren los datos bajoel: "#app"y establece el valor predeterminado en0, es decir, el color de fondo predeterminado es el primer color seleccionado. En el archivoindex.html, localiza el elemento<div class="right" id="setBG">. Aquí es donde se mostrarán los bloques de color circulares para el tema de lectura.
data: {
isActiveColor: 0,
//...
}
- Utiliza una directiva
v-forpara recorrer la propiedad de datosbgList, que contiene la lista de colores de tema. Para cada color, crea un elemento<a>con una directiva@clickque llame al métodochangeColor, pasando el índice actual como argumento.
<div class="right" id="setBG">
<a
@click="changeColor(index)"
v-for="(item,index) in bgList"
:style="{'background-color':item}"
:class="{'iconfont':true,'icon-selected':index==isActiveColor}"
></a>
</div>
- En la instancia de Vue, agrega el método
changeColoral objetomethods. Este método debe actualizar la propiedad de datosisActiveColorcon el índice del bloque de color seleccionado.
methods: {
changeColor(value) {
this.isActiveColor = value;
},
}
- En el elemento
<p>con la clasetext-content, utiliza la directiva:stylepara establecer dinámicamente el color de fondo y el color de fuente según el color de tema seleccionado.
<p
class="text-content"
:style="{
'background-color': `${bgList[isActiveColor]}`,
'color': isActiveColor === 4? '#ffffff' : '#333333'
}"
>
<!-- contenido -->
</p>
Implementar la configuración del tamaño de fuente
En este paso, aprenderás cómo implementar la configuración del tamaño de fuente. Sigue los pasos a continuación para completar este paso:
- Define la variable "fontSize" en los datos bajo
el: "#app"y establece el valor predeterminado en "18". En el archivoindex.html, localiza el elemento<div class="set-font">. Aquí es donde se mostrarán los controles de tamaño de fuente.
data: {
fontSize: 18,
//...
}
- Localiza
<span class="lang">18</span>y cambia el 18 por la variablefontSize.
<span class="lang">{{ fontSize }}</span>
- Agrega directivas
@clicka los botones "A-" y "A+", vinculándolos al métodoupdateFontSizeen la instancia de Vue. Pasa un valor booleano para indicar si el tamaño de fuente debe aumentar o disminuir.
<a @click="updateFontSize(false)" class="prev">A-</a>
<a @click="updateFontSize(true)" class="next">A+</a>
- En la instancia de Vue, agrega el método
updateFontSizeal objetomethods. Este método debe actualizar la propiedad de datosfontSize, asegurando que el tamaño de fuente se mantenga dentro del rango de 12px a 48px.
methods: {
updateFontSize(flag) {
if (flag) {
if (this.fontSize < 48) {
this.fontSize += 2;
}
} else {
if (this.fontSize > 12) {
this.fontSize -= 2;
}
}
}
}
- En el elemento
<p>con la clasetext-content, utiliza la directiva:stylepara establecer dinámicamente el tamaño de fuente y la altura de línea según la propiedad de datosfontSize.
<p
class="text-content"
:style="{
'background-color': `${bgList[isActiveColor]}`,
'color': isActiveColor === 4? '#ffffff' : '#333333',
'font-size': `${fontSize}px`,
'line-height': `${fontSize + 10}px`
}"
>
<!-- contenido -->
</p>
Al seguir estos pasos, has completado la implementación de las características del lector de libros electrónicos, incluyendo la alternancia de la visibilidad de la barra de herramientas del encabezado, la configuración del tema de lectura y la configuración del tamaño de fuente.
A continuación, haz clic en el botón Go Live en la esquina inferior derecha de WebIDE para ejecutar el proyecto. Abre "Web 8080" en la parte superior de la máquina virtual y actualízalo manualmente y verás la página.

Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



