vue阶段案例,练习filter、map、forEach,双向绑定,三元表达式,以及图片滚动,文字跳动等等。

news2024/11/18 0:00:39

阶段案例

通过案例来练习双向绑定,三元表达式,以及图片滚动,文字跳动等等。

代码如下:

<template>
  <table class="bjtp" >
    <div class="title" >{{title}}</div>
    <div class="scroll-container">
    <div class="scroll-images">
      <img src="../assets/辣味鱿鱼丝.png" alt="Image 1"><span class="price">辣味鱿鱼丝¥10</span>
      <img src="../assets/炭烧味鱿鱼丝.png" alt="Image 2"><span class="price">炭烧味鱿鱼丝¥12</span>
      <img src="../assets/原味鱿鱼丝.png" alt="Image 3"><span class="price">原味鱿鱼丝¥15</span>
    </div>
  </div>
  <ul>
      <span style="color: red;"><strong>特价选购</strong></span>
      <li v-for="food in foods">
      <img v-bind:src="food.image" class="imgs">
      <span>{{food.name}}</span>
      <input type="checkbox" v-model="food.purchased">
      <span >{{  food.purchased ? "已选购" : "可选购" }}</span>
      
      </li>
      <li><input type="button" value="立即购买" style="width: 210px; color: black; background-color: red; height: 30px;"></li>
    </ul>
 
  </table>
  </template>
  
  <script setup>
  
  import {ref,reactive} from 'vue'
  let title = ref("欢迎来到老李店铺")
  setTimeout(
      () => {
            title.value = "全场5折起"
          },3000
        )
  import image1 from '../assets/辣味鱿鱼丝.png';
  import image2 from '../assets/炭烧味鱿鱼丝.png';
  import image3 from '../assets/原味鱿鱼丝.png'; 
  
  const foods = reactive([
  {id : 1, name:'麻辣味的鱿鱼¥10', image:image1, purchased:false},
  {id : 2, name:'炭烧味鱿鱼丝¥12', image:image2, purchased:false},
  {id : 3, name:'原味的鱿鱼丝¥15', image:image3, purchased:false}
  ]);
  </script>
  <!-- src="https://hbimg.b0.upaiyun.com/d66b778917183e2814ed97dcbf8feab0624912dc5d4e-Y37mMA_fw658" -->
url(https://img95.699pic.com/xsj/06/tu/dp.jpg%21/fw/700/watermark/url/L3hzai93YXRlcl9kZXRhaWwyLnBuZw/align/southeast)
  <style>
  
  .title{
    font-family: 仿宋;
    color: green;
    margin-top: 120px;
    margin-left: 75px;
    color: palevioletred;
    display: inline-block;
      animation: jump 2s infinite;
  }
  .bjtp{
  
    height: 1000px;
    width: 400px;
    background-image:url('../assets/image.png');
    background-size: 120%;
    background-repeat: no-repeat;
    margin-right: 20px;
  }
    
  .price{
    color: red;
    font-weight: bold;  /* 字体加粗 */
  
  }
  ul{
    list-style-type: none;
    margin-right: -30px;
    margin-top: 70px;
  }
  .imgs{
  width: 30px;
  height: 30px;
  margin-right: 10px;
  }
  .scroll-container {
      margin-top: 20px;
      margin-left: 110px;
      overflow: hidden;
      position: relative;
      height: 150px; /* 设置滚动区域的高度 */
      width: 260px;
    }
   
    .scroll-images {
      position: absolute;
      width: 100%;
      animation: scroll-up 20s linear infinite; /* 动画名称,持续时间,速率函数,循环次数 */
    }
   
    .scroll-images img {
      width: 100%;
      display: block;
      margin-bottom: 10px; /* 图片之间的间隔 */
    }
   
    @keyframes scroll-up {
      from {
        transform: translateY(0);
      }
      to {
        transform: translateY(-100%); /* 根据容器高度调整 */
      }
    }  
    @keyframes jump {
      0%, 100% { opacity: 0; transform: translateY(-10px); }
      50% { opacity: 1; transform: translateY(0); }
    }
    .text-container {
    opacity: 0;
    transition: opacity 0.2s;
  }
  </style>

项目结构预览:

在这里插入图片描述

效果展示:

在这里插入图片描述

对数组筛选过滤操作

let arr = [true, false, true, false]  /* 定义了一个数组 */
let arr2 = arr.filter(x => x)        /* filter常用在对数组的赛选或复制上,filter会把true的内容返回,并赋值给新数组arr2 */
console.log(arr2)
》》[true, true] 


let sum = [1, 2, 3, 4]  /* 定义了一个整数类型的数组 */
let arr3 = sum.filter(x => x <= 3 )   /* 此处设置了条件,会筛选出小于等于3的数字,并赋值给新数组arr3 */

console.log(arr3)
》》[1, 2, 3]

let arr4 = sum.map(x => x*2)   /* map多用于数组的计算,sum中每一个元素都乘以2,并赋值给新数组arr4 */
console.log(arr4)
》》[2, 4, 6, 8]

let arr5 = sum.forEach(x => console.log(x)) /* forEach,不会有返回值,即无法给arr5赋值 */
》》1
》》2
》》3
》》4
console.log(arr5)
》》undefined  /* 证实了forEach 不会有返回值 */

利用filter的筛选功能可以替代for循环的一些操作,比如复制列表,循环输出等。接下来通过filter可以赛选false和true的值的特性,做一个当商品被选购时,从商品列表加入到,购物篮的效果。是基于上一节的综合案例而写!

主要改动代码如下:

  <section>
    <ul>
      <h1>可选购列表</h1>
      <span style="color: red;"><strong>特价选购</strong></span>
      <li v-for="food in foods.filter(x => ! x.purchased)" :key="food.id">
      <img v-bind:src="food.image" class="imgs">
      <span>{{food.name}}</span>
      <input type="checkbox" v-model="food.purchased">
      <span class="duiqi">{{  food.purchased ? "已选购" : "可选购" }}</span>
      </li>
       </ul>
  </section>

  <section>
    <ul>
      <h1>已选购列表</h1>
      <span style="color: red;"><strong>真香警告!!!</strong></span>
      <li v-for="food in foods.filter(x => x.purchased)">
      <img v-bind:src="food.image" class="imgs">
      <span>{{food.name}}</span>
      <input type="checkbox" v-model="food.purchased">
          <span class="duiqi">{{  food.purchased ? "已选购" : "可选购" }}</span>
      </li>
      <li><input type="button" value="立即购买" style="width: 210px; color: black; background-color: red; height: 30px;">   <button @click="Toclear">全部取消</button></li>
    </ul>
  </section>

效果截图如下:

在这里插入图片描述

接下来我想实现,全部选择加入购物车,和全部取消的效果。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1664405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ACM实训冲刺第四天

【碎碎念】最近的任务有点繁重&#xff0c;所以考虑到实际情况&#xff0c;视频学习决定放置一段时间&#xff0c;重点是学校的实训练习题&#xff0c;对于我而言&#xff0c;目标不是优秀/良好&#xff0c;综合考虑我的实际情况&#xff0c;保佑我及格、顺利通过就可&#xff…

机器学习算法应用——神经网络回归任务、神经网络分类任务

神经网络回归任务&#xff08;4-3&#xff09; 神经网络回归任务&#xff0c;通常指的是使用神经网络模型进行回归分析。回归分析是一种统计学方法&#xff0c;用于研究一个或多个自变量&#xff08;预测变量&#xff09;与一个因变量&#xff08;响应变量&#xff09;之间的关…

node pnpm修改默认包的存储路径

pnpm与npm的区别 PNPM和NPM是两个不同的包管理工具。 NPM&#xff08;Node Package Manager&#xff09;是Node.js的官方包管理工具&#xff0c;用于安装、发布和管理Node.js模块。NPM将包安装在项目的node_modules目录中&#xff0c;每个包都有自己的依赖树。 PNPM&#xf…

c++ STL 之栈—— stack 详解

vector 是 stl 的一个关联容器,名叫“栈”&#xff0c;何为“栈”&#xff1f;其实就是一个数组&#xff0c;但有了数组何必还需栈&#xff0c;这是一个高深的问题。 一、简介 1. 定义 栈&#xff0c;是一个柔性数组&#xff08;可变长数组&#xff09;&#xff0c;可以变大变小…

【教程向】从零开始创建浏览器插件(三)解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题

第三步&#xff1a;解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题 Chrome 扩展开发中&#xff0c;弹出页面&#xff08;Popup&#xff09;、背景脚本&#xff08;Background Script&#xff09;、内容脚本&#xff08;Content Script&#xff09;各自拥有独立…

设计模式2——原则篇:依赖倒转原则、单一职责原则、合成|聚合复用原则、开放-封闭原则、迪米特法则、里氏代换原则

设计模式2——设计原则篇 目录 一、依赖倒转原则 二、单一职责原则&#xff08;SRP&#xff09; 三、合成|聚合复用原则&#xff08;CARP&#xff09; 四、开放-封闭原则 五、迪米特法则&#xff08;LoD&#xff09; 六、里氏代换原则 七、接口隔离原则 八、总结 一、依赖…

R语言数据探索与分析-碳排放分析预测

# 安装和加载需要的包 install.packages("readxl") install.packages("forecast") install.packages("ggplot2") library(readxl) library(forecast) library(ggplot2)# 数据加载和预处理 data <- read_excel("全年数据.xlsx") co…

有哪些是618必买的数码好物,这几款千万别错过

备受瞩目的618购物节即将拉开帷幕&#xff0c;身为数码领域的资深发烧友&#xff0c;我迫不及待地要为大家呈现一系列精心挑选的数码产品。无论您是热衷于追求科技尖端的先锋者&#xff0c;还是希望用智能设备为生活增添一抹亮色的品味人士&#xff0c;这里总有一款能让您心动的…

【python】python中的argparse模块,教你如何自定义命令行参数

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

ARM基于DWT实现硬件延时(GD32)

软件延时的缺点 软件延时的精度差&#xff0c;受系统主频影响&#xff0c;调教困难 硬件延时 DWT数据跟踪监视点单元硬件延时 硬件延时实现代码 delay.c #include <stdint.h> #include "gd32f30x.h"/** *****************************************************…

【算法入门赛】A.坐标变换(推荐学习)C++题解与代码

比赛链接&#xff1a;https://www.starrycoding.com/contest/8 题目描述 武汉市可以看做一个二维地图。 牢 e e e掌握了一项特异功能&#xff0c;他可以“瞬移”&#xff0c;每次瞬移需要分别设定 x x x和 y y y的偏移量 d x dx dx和 d y dy dy&#xff0c;瞬移完成后位置会…

JMeter 如何应用于 WebSocket 接口测试

WebSocket: 实时双向通信的探索及利用 JMeter 进行应用性能测试 WebSocket 是一项使客户端与服务器之间可以进行双向通信的技术&#xff0c;适用于需要实时数据交换的应用。为了衡量和改进其性能&#xff0c;可以通过工具如 JMeter 进行测试&#xff0c;但需要先对其进行适配以…

出差行程到底怎么管?这个“高分指南”划重点来了!

在日常商旅过程中&#xff0c;出差行程计划是必不可少的环节。公司需要以此为依据判断行程是否有必要、是否合理&#xff0c;确保出差行程与公司的业务需求相符。 通过胜意费控云&#xff0c;员工填写出差申请时&#xff0c;行程计划智能生成&#xff0c;平台自动匹配并带出差标…

EasyRecovery(易恢复) 使用测试及详细使用方法

你有没有因为数据丢失懊悔不已&#xff0c;EasyRecovery&#xff08;易恢复&#xff09;&#xff0c;来自美国拥有38年数据恢复的软件&#xff0c;只有收费版&#xff0c;重要事情说三遍&#xff0c;EasyRecovery 没有免费版&#xff0c;可以成功找回删除的部分文件&#xff0c…

歌手舞台再掀风云

《歌手》舞台再掀风云&#xff0c;重磅消息来袭——国际巨星亚当兰伯特空降踢馆&#xff0c;一场音乐盛宴即将点燃激情&#xff01;消息一出&#xff0c;粉丝欢呼&#xff0c;热议如潮。亚当兰伯特&#xff0c;这位曾让世界为之倾倒的音乐天才&#xff0c;如今即将登陆《歌手》…

工业中常见大数据技术组件

随着大数据技术在各行各业的广泛应用&#xff0c;数据产品经理的角色也变得越来越重要。了解常见的大数据技术组件对于数据产品经理来说至关重要&#xff0c;因为这有助于他们更好地设计产品架构和功能模块&#xff0c;满足数据处理和分析的需求。在处理海量数据的产品中&#…

keep健身小程序基于FastAdmin+ThinkPHP+UniApp(源码搭建/上线/运营/售后/更新)

基于FastAdminThinkPHPUniApp&#xff08;目前仅支持微信小程序和公众号&#xff09; 开发的健身相关行业微信小程序&#xff0c;程序适用于健身房、瑜伽馆、游泳馆、篮球馆等健身培训场所。平台拥有课程售卖、课程预约、多门店管理、私教预约、教练端、会员卡办理、在线商城、…

el-checkbox选中后的值为id,组件显示为label中文

直接上代码 方法一 <el-checkbox v-for"item in list" :key"item.id" :label"item.id">{{中文}} </el-checkbox> 方法二 <el-checkbox-group class"flex_check" v-model"rkStatusList" v-for"item…

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学&#xff01; 归根结底因为学习是个反人性的过程&#xff01; 复盘没学下去的网课&#xff0c;都有以下特点&#xff1a; &#x1f605; 臣妾听不懂啊&#xff01; 初次接触编程遇到太多抽象高深的概念&#xff0c;不了解老师口中的一个…

队列 + 宽搜(BFS)

目录 leetcode题目 一、二叉树的层序遍历 二、二叉树的层序遍历 II 三、N叉树的层序遍历 四、二叉树的锯齿形层序遍历 五、二叉树最大宽度 六、在每个树行中找最大值 七、二叉树的层平均值 八、最大层内元素和 九、二叉树的第K大层和 十、反转二叉树的奇数层 leetco…