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.hqwc.cn/news/690209.html

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

相关文章

解决springboot项目的网站静态页面显示不全问题

在通过springboot搭建项目时&#xff0c;为了能够访问静态的前端页面&#xff0c;我们考虑到访问的优先级问题&#xff0c;通常选择将资源放在recourses/static的目录下&#xff0c;如下&#xff1a; 这时可能会出现类似于下面这种图片无法加载、没有按照指定位置显示的情况&am…

32.768kHz晶振的时间精度问题及其解决方法

32.768kHz晶振因其稳定性高、功耗低&#xff0c;被广泛应用于实时时钟(RTC)、计时电路及低功耗电子产品中。然而&#xff0c;在某些情况下&#xff0c;这些晶振可能出现时间偏差&#xff0c;影响设备正常工作。以下是可能导致32.768kHz晶振时间误差的原因及相应的解决策略。 温…

巨坑啊! before-upload返回false 会执行on-remove

通过对on-remove对应参数的打印&#xff0c;发现回调中的file参数有个status&#xff0c;若是是在before-upload中就被过滤了&#xff0c;就是ready&#xff0c;若是已经上传成功了去点击删除&#xff0c;status是success&#xff0c;就他了。 onRemove(file,fileList){if(file…

LeetCode:116.填充每个节点的下一个右侧节点指针

文章目录 1.层次遍历2.使用next层序遍历3.递归方法 LeetCode&#xff1a;116.填充每个节点的下一个右侧节点指针 题目&#xff1a; 示例&#xff1a; 分析题意容易关注到只需要将每层结点连接起来&#xff0c;因此我们只需要把每层结点求出来即可&#xff0c;即使用层次遍历。 …

【每日刷题】Day37

【每日刷题】Day37 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 2391. 收集垃圾的最少总时间 - 力扣&#xff08;LeetCode&#xff09; 2. 1614. 括号的最大嵌套深度…

免费AI工具教学知识库

在数字化时代&#xff0c;AI技术正以前所未有的速度改变着世界。你是否也渴望踏入这个充满无限可能的领域&#xff1f;好消息&#xff01;现在有一个免费的AI知识库向你敞开大门&#xff0c;助你轻松掌握AI的奥秘。 这个知识库内容丰富&#xff0c;覆盖从AI入门必学到AI使用进阶…

vue3属性透传(透传 Attributes),支持多个根节点,且可以在JavaScript 中访问透传 Attributes

支持多个根节点&#xff0c;且可以在JavaScript 中访问透传 Attributes Index.vue: <script setup> import { ref, onMounted } from vue import Child from ./Child.vue import ./index.cssconst handleClick () > {console.log(1) }onMounted(() > {}) </s…

【3dmax笔记】036:FDD修改器

一、FDD修改器简介 FDD修改器是对模型进行变形处理的命令,FDD后面的数字越大,编辑节点越多,编辑越精细,但是FDD控制点多的同时,模型上的节点也要多才可以。 FFD修改器是一种非常灵活的修改器,可以让我们对模型进行自由的变形操作。通过在FFD修改器中设置变形点,我们可…

Celery Redis 集群版连接和PyCharm启动配置

目录 使用Redis cluster版作为broker原因 PyCharm配置 使用Redis cluster版作为broker 在celery5及其之前版本&#xff0c;需要配置如下才可行 celery_app.conf.update( broker_transport_options{“global_keyprefix”: “{celery}:”}, ) 原因 https://github.com/celery/…

uniapp音乐播放整理

一、前置知识点 1.1 音频组件控制-uni.createInnerAudioContext() 创建并返回内部 audio 上下文 innerAudioContext 对象。 主要用于当前音乐播放&#xff1b; 1.1.1 innerAudioContext属性 属性类型说明只读平台差异说明srcString音频的数据链接&#xff0c;用于直接播放…

【Python系列】Python中列表属性提取

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Java 查询树结构列表,递归删除子节点】

Java 获取列表树结构&#xff0c;递归删除子节点 数据库表结构ModelVO查询树结构列表递归删除子节点 数据库表结构 Model Data AllArgsConstructor NoArgsConstructor public class TBaseDept {/** ID */private String id;/** 单位名称 */private String fdName;/** 部门编码…