tab1.page.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'app-tab1',
  4. templateUrl: 'tab1.page.html',
  5. styleUrls: ['tab1.page.scss'],
  6. })
  7. export class Tab1Page {
  8. searchResults: { title: string }[] = []; // 存储搜索结果
  9. searchTerm: string = ''; // 存储当前搜索词
  10. slides: { imgUrl: string }[] = []; // 存储轮播图数据
  11. slideOpts = {
  12. initialSlide: 0,
  13. speed: 400,
  14. autoplay: {
  15. delay: 3000
  16. },
  17. loop: true
  18. };
  19. isSearchFocused: boolean = false; // 跟踪搜索框的聚焦状态
  20. showCarousel: boolean = true; // 控制轮播图的显示
  21. showContent: boolean = true; // 控制内容的显示
  22. constructor() {
  23. this.initializeSlides(); // 初始化轮播图数据
  24. }
  25. onSearch(event: any) {
  26. this.searchTerm = event.target.value.trim(); // 获取搜索词并去除首尾空格
  27. if (this.searchTerm !== '') {
  28. // 模拟简单的搜索结果
  29. this.searchResults = [
  30. { title: '搜索结果1' },
  31. { title: '搜索结果2' },
  32. // 根据搜索逻辑添加更多搜索结果
  33. ];
  34. } else {
  35. this.searchResults = []; // 清空搜索结果数组
  36. }
  37. }
  38. initializeSlides() {
  39. // 初始化轮播图数据,使用 assets 文件夹下的图片
  40. this.slides = [
  41. { imgUrl: 'assets/carousel-item1.jpg' },
  42. { imgUrl: 'assets/carousel-item2.jpg' },
  43. { imgUrl: 'assets/carousel-item3.jpg' },
  44. { imgUrl: 'assets/carousel-item4.jpg' },
  45. { imgUrl: 'assets/carousel-item5.jpg' },
  46. { imgUrl: 'assets/carousel-item6.jpg' },
  47. ];
  48. }
  49. onSearchFocus() {
  50. // 当搜索框聚焦时,隐藏轮播图和其他内容
  51. this.isSearchFocused = true;
  52. this.showCarousel = false;
  53. this.showContent = false;
  54. }
  55. onSearchBlur() {
  56. // 当搜索框失去焦点时,根据搜索词的存在情况显示轮播图或内容
  57. this.isSearchFocused = false;
  58. if (this.searchTerm === '') {
  59. this.showCarousel = true;
  60. }
  61. this.showContent = true;
  62. }
  63. }