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

阶段案例

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

代码如下:

<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.mzph.cn/web/10300.shtml

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

相关文章

【解决Android Studio】cmake报错找不到vulkan包

1 报错信息 CMake Error at D:/Android/project/cmake/3.10.2.4988404/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Vulkan (missing: Vulkan_LIBRARY) Call Stack (most recent call first): 2. 错误原因 minSdk版本不对&am…

18.Blender 渲染工程、打光方法及HDR贴图导入

HDR环境 如何导入Blender的HDR环境图 找到材质球信息 在右上角&#xff0c;点击箭头&#xff0c;展开详细部分 点击材质球&#xff0c;会出现下面一列材质球&#xff0c;将鼠标拖到第二个材质球&#xff0c;会显示信息 courtyard.exr 右上角打开已渲染模式 左边这里选择世界…

动作识别 slowfast动作识别项目记录

动作识别 slowfast动作识别项目记录

如何在自己的服务器上快速搭建第一个网站(其一)

根据上篇文章相信很多人以及成功搭建服务器啦。今天我们讲下如何在自己的服务器快速搭建第一个网站的一些重要配置&#xff0c;以及搭建网站的必备环境。干货满满&#xff0c;希望大家能够关注点赞收藏。 我会不定期更新一些实用的工具&#xff0c;欢迎大家私信评论喔&#xf…

12个网上赚钱野路子信息差,人人可做的赚钱小项目!

在这个多元化的时代&#xff0c;副业已经成为许多人增加收入、实现自我价值的重要途径。今天&#xff0c;我们就来聊聊那些既有趣又能赚钱的副业项目&#xff0c;让你的钱包鼓起来&#xff01; 1.文字创作 写作不仅是情感的宣泄&#xff0c;更是财富的积累。无论是自媒体文、软…

事件代理 浅谈

事件代理是一种将事件处理委托给父元素或祖先元素来管理的技术。当子元素触发特定事件时&#xff0c;该事件不会直接在子元素上进行处理&#xff0c;而是会冒泡到父元素或祖先元素&#xff0c;并在那里进行处理。这样做的好处是可以减少事件处理函数的数量&#xff0c;提高性能…

VR智慧文旅:开启“韵味”旅游季的新篇章

为了充分满足游客的假日文化旅游需求&#xff0c;各地纷纷“解锁”新花样&#xff0c;沉浸式实景观展震撼“出圈”。在数字化浪潮的推动下&#xff0c;文化旅游行业正经历着变革&#xff0c;在万物皆可沉浸的时代&#xff0c;VR智慧文旅燃起了不一样的热度。 许多业内人士认为&…

Tiff文件解析和PackBits解压缩

实现了Tiff图片文件格式的解析&#xff0c;对Tiff文件中的PackBits压缩格式进行解压缩&#xff0c;对Tiff文件中每一个Frame转换成BufferedImage显示。 Java语言实现&#xff0c;Eclipse下开发&#xff0c;AWT显示图片。 public static TIFF Parse(final byte[] bytes) throw…

排序算法(Java版)

目录 1、直接插入排序2、希尔排序3、直接选择排序4、堆排序5、冒泡排序6、快速排序6.1 递归实现6.2 非递归实现 7、归并排序7.1 递归实现7.2 非递归实现 8、性能分析 今天我们学习一种算法&#xff1a;排序算法&#xff08;本文的排序默认是从小到大顺序&#xff09;&#xff0…

渗透思考题

一&#xff0c;尝试登录。 客户端对密码进行哈希处理并缓存密码hash&#xff0c;丢弃实际的明文密码&#xff0c;然后将用户名发送到服务器&#xff0c;发起认证请求 密文存储位置&#xff1a;数据库文件位于C:WindowsSystem32configsam&#xff0c;同时挂载在注册表中的HKLMSA…

C语言【文件操作 1】

文章目录 1.为什么使用文件2.文件是什么&#xff1f;2.1程序文件2.2数据文件 3.二进制文件和文本文件4.文件的打开和关闭4.1流和标准流流标准流 4.2文件指针4.3文件的打开和关闭 结语 1.为什么使用文件 很简单 长久的存储数据 如果没有文件&#xff0c;我们写程序所产生的数据…

【小红书采集工具】根据搜索关键词批量采集小红书笔记,含笔记正文、笔记链接、发布时间、转评赞藏等

一、背景介绍 1.1 爬取目标 熟悉我的小伙伴都了解&#xff0c;我之前开发过2款软件&#xff1a; 【GUI软件】小红书搜索结果批量采集&#xff0c;支持多个关键词同时抓取&#xff01; 【GUI软件】小红书详情数据批量采集&#xff0c;含笔记内容、转评赞藏等&#xff0c;支持…

【C++】string类的使用①(默认成员函数 || 迭代器接口begin,end,rbegin和rend)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 前言&#x1f308;关于string类&#x1f308;string类的成员函数&#x1f525;默认成员函数string类对象的构造(constructor)string类对象的析构string类对象的赋值运算符…

NPOI生成word浮动图标

1、NPOI版本2.7.0, net框架4.8 2、安装OpenXMLSDKToolV25.msi 3、先创建一个word文档&#xff0c;并设置图片为浮于文字之上 4、OpenXML显示的结果 5、实际代码如下&#xff1a; public class GenerateWordDemo {public GenerateWordDemo(){}//https://blog.fileformat.co…

前端笔记-day03

文章目录 01-初始CSS02-CSS引入方式03-标签选择器04-类选择器05-id选择器06-通配符选择器07-画盒子08-字体大小09-文字粗细10-字体倾斜11-行高12-行高垂直居中13-字体族14-font复合属性15-文本缩进16-文本对齐方式17-图片对齐方式18-文本修饰线19-文字颜色20-调试工具21-综合案…

Dual Aggregation Transformer for Image Super-Resolution论文总结

题目&#xff1a;Dual Aggregation Transformer&#xff08;双聚合Transformer&#xff09; for Image Super-Resolution&#xff08;图像超分辨&#xff09; 论文&#xff08;ICCV&#xff09;&#xff1a;Chen_Dual_Aggregation_Transformer_for_Image_Super-Resolution_ICCV…

IM 是什么?

在当今数字化的时代&#xff0c;即时通讯&#xff08;IM&#xff09;已经渗透到人们的日常生活和企业的工作环境中。IM技术的快速i发展为人们提供了一种高效、便捷的沟通方式&#xff0c;不仅推动了社会的信息化进程&#xff0c;也提升了企业的协同效率和竞争力。 作为企业级I…

【GD32】01-GPIO通用输入输出

GD32 闲话说在前头 这里又开一个系列啦。 原因就是之前买了立创开发板的9.9的GD32E230C8T6的板子&#xff0c;买都买了就跟着立创开发板学习一下&#xff08;属于是一次性支持了两个国产品牌了&#xff0c;立创和兆易创新&#xff09;。并且我还买了GD32F407VET6的板子&…

C++:关于圆形鱼眼半全景图转为等距圆柱投影图

C&#xff1a;空间坐标映射到球面坐标/全景图_如何将球体坐标映射到球面uv-CSDN博客 C&#xff1a;关于360全景图像和立方体6面全景图像的相互转换_彩色全景拆解正方体6个面-CSDN博客 之前记录了立方体和360全景之间的转换&#xff0c;这次记录下鱼眼图与360全景图之间的转换…

信创应用软件之办公流版签

信创应用软件之办公流版签 文章目录 信创应用软件之办公流版签概述流式文件版式文件电子签章厂商金山办公永中-永中Office中标-中标普华Office福昕科技e签宝法大大 概述 办公流版签软件主要包括办公中常用到的流式软件、版式软件以及电子签章。 版式文件和流式文件都是文书类…