vue3重构个人网站2——首页

1 首页思路

2 轮播图

3 文章列表卡片

1 首页思路

在这里插入图片描述
在这里插入图片描述
  直接上图,主页跟旧版的类似。开头的固定图片改成轮播图,手动搞了个循环轮播,效果还不错。主体内容仍然是左边导航,右侧推荐文章列表。底部是仓库,邮箱地址等。

2 轮播图

在这里插入图片描述
  轮播图的布局不是很复杂,左右切换键跟中间文字都是绝对定位,所以实际上只有图片。重点是循环轮播的特征,即在最后一张继续点击切换下一张时会切换到第一张,并且保证切换动画方向不变,在很多轮播图插件中,要么在第一张和最后一张无法继续切换;要么是倒退的动画回到第一张或最后一张,我个人感觉这种不连续的动画不是很好,于是自己搞了个循环轮播。主要有以下思路。

  1. 将需要展示的图片放在一个数组。
  2. 在数组首尾追加尾末图片,即实际上加载n+2张图。
  3. 图片宽度设为100vw铺满屏幕,通过flex布局将图片放在同一行,通过translateX来切换图片。
  4. 当切换的首尾两张图时(新数组,额外添加尾首图片后),关闭DOM动画,直接切换到最后一张或第一张,此时用户不会看到该切换过程。
<div class="imgs">
	<!-- 动态绑定transition和translateX -->
	<img
		class="bg-img"
		v-for="(img, index) in imgs"
		:key="index"
		:style="
			`
          transition: ${transition};
          transform: translateX(${imgPosition}vw)
        `
		"
		:src="img"
	/>
</div>
setup(props, ctx) {
	const data = reactive({
		imgs: [
			"http://blogs.jinlontang.cn/background.jpg",
			"http://load.jinlongang.cn/image/degree.png",
			"http://blogs.jinlhitang.cn/avator.jpg",
			"http://blogs.jinlochitang.cn/icon/mark_blue.png",
		],
		imgPosition: -100,
		transition: "var(--speed-ease)",
	})

	// 增多首尾两张,方便循环
	data.imgs.push(data.imgs[0])
	data.imgs.unshift(data.imgs[data.imgs.length - 2])

	const change = (i) => {
		data.transition = "var(--speed-ease)"
		let position = data.imgPosition + i * 100
		// 向右超出
		if (position < -(data.imgs.length - 2) * 100) {
			setTimeout(() => {
				data.transition = "0s"
				data.imgPosition = -100
			}, 500)
		}
		// 向左超出
		else if (position === 0) {
			setTimeout(() => {
				data.transition = "0s"
				data.imgPosition = -(data.imgs.length - 2) * 100
			}, 500) // 切换动画时长500ms,500ms后再进行跳转
		}
		data.imgPosition = position
	}
	return { ...toRefs(data), change }
}

3 文章列表卡片

在这里插入图片描述

  卡片样式也没有变化,因为我觉得设计得挺不错的,当鼠标移入卡片时阴影会加深,当鼠标移入标题时有下划线会从中间向两边展开的动画。点击标题进入对应的文章,点击下面的标签可以进入文章列表界面, 并根据指定标签进行搜索。
  下划线通过添加一个div实现

<header>
	<h3>
	  <router-link to="/Articles/all">{{article.title}}</router-link>
	</h3>
	<div class="line"></div>
</header>
header
   display inline-block
   h3
     color var(--green-font)
   .line
     width 0
     height 3px
     margin-left 50%
     transform translateX(-50%)
     background-color var(--green-bg)
     transition var(--speed-hover)
   &:hover .line
     width 100%
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重构Vue2项目到Vue3可以按照以下步骤进行: 1. 首先,创建一个新的Vue3项目。可以使用命令行或者Vue CLI来创建一个空的Vue3项目。 2. 接下来,将Vue2项目的目录与创建的Vue3项目的目录进行对比。可以查看两个项目的目录结构和文件,找出需要迁移的文件和目录。 3. 逐步将Vue2项目的文件迁移到Vue3项目中。根据对比结果,修改不合适的地方,使其适配Vue3。可能需要更改的地方包括路由配置、组件引用、语法等。 4. 如果原先的Vue2项目中使用了一些Vue周边的库,需要确保这些库在Vue3项目中也能正常使用。可以查看这些库的官方文档或社区讨论,了解它们是否已经适配了Vue3,并按照相应的指导进行配置和迁移。 总之,重构Vue2项目到Vue3需要创建一个新的Vue3项目,对比和迁移文件,并根据需要修改适配的部分。同时,还需确保原先使用的Vue周边库在Vue3项目中能够正常工作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用Vue3重构vue2项目](https://blog.csdn.net/qiwoo_weekly/article/details/109192667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值