当前位置: 首页 > news >正文

java做网站开发书seo外包公司哪家好

java做网站开发书,seo外包公司哪家好,个人做网站郊游的英,做冒菜店网站🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 需求简介 轮播图是我们前端开发中的一个常见需求,在项目开发中,我们可以使用element、ant等UI库实现。某些场景,为了一个简单的功能安装一…

🧑‍💻 写在开头
点赞 + 收藏 === 学会🤣🤣🤣

需求简介

轮播图是我们前端开发中的一个常见需求,在项目开发中,我们可以使用element、ant等UI库实现。某些场景,为了一个简单的功能安装一个库是没必要的,我们最好的选择就是手搓。
在这里插入图片描述
我们来看一个需求
在这里插入图片描述
上述需求核心就是实现一个无缝轮播的切换效果。以这个需求为例,我们看看最终实现效果:
在这里插入图片描述

实现思路

要想实现一个无缝的轮播效果,其实非常简单,核心思想就是动态改变显示的列表而已。比如我们有这样一个数组

const list = ref([{ name: 1, id: 1 }, { name: 2, id: 2 },{ name: 3, id: 3 }
])

如果我们想无缝切换的展示这个数据,最简单的代码就是动态的改变下面的代码的index

<template><div>{{ list[index] }}</div>
</template>
<script setup>const index = ref(0)const list = ref([{ name: 1, id: 1 }, { name: 2, id: 2 }, { name: 2, id: 2 }])
<scriptp>

那如何实现切换的样式呢?也非常简单,我们只要给元素添加一个出现样式和离开样式即可。现在,我们来具体实现这样一个需求。

技术方案

数据的动态切换

要想实现一个数据的动态循环切换效果,是非常容易的:

<template><div v-for="(build, index) in list" :key="index"><div v-show="index === selectIndex">卡片自定义内容</div></div>
</template>
<script setup>
const selectIndex = ref(0)
const list = ref([{ name: "卡片1", id: 1 }, { name: "卡片1", id: 2 }, { name: "卡片1", id: 2 }]
)// #计时器实例
let timer: any = null// >计时器逻辑
const timeFuc = () => {timer = setInterval(() => {// 更改选中的indexif (selectIndex.value >= list.value.length - 1) {selectIndex.value = 0} else {selectIndex.value++}}, 5000)
}timeFuc()
<scriptp>

上述代码中,我们设置了一个定时器,定时器每5s执行一次,每次执行都会动态更改当前要显示的数据索引值,当索引值达到最大实,在将其重置。通过上述的简单代码,我们就实现了一个可以自动切换的循环渲染的卡片。

动画添加

要想实现最终效果的动态效果也非常容易,我们只需要给每个元素出现时设置一些样式,离开时设置一些样式即可。借助vue的Transition组件,我们能很容易实现这样一个效果。

如果你不了解vue的Transition组件,请去官网补充下知识:cn.vuejs.org/guide/built…

<template>
<div class="main-content"><Transition v-for="(build, index) in list" :key="selectIndex"><div class="banner-scroll-wrap" v-show="index === selectIndex">卡片自定义内容</div></Transition>
</div>
</template>
<script setup>
const selectIndex = ref(0)
const list = ref([{ name: "卡片1", id: 1 }, { name: "卡片1", id: 2 }, { name: "卡片1", id: 2 }]
)// #计时器实例
let timer: any = null// >计时器逻辑
const timeFuc = () => {timer = setInterval(() => {// 更改选中的indexif (selectIndex.value >= list.value.length - 1) {selectIndex.value = 0} else {selectIndex.value++}}, 5000)
}timeFuc()
<scriptp>
<style lang="less" scoped>
.main-content {position: relative;height: 100%;.banner-scroll-wrap {position: absolute;top: 0;bottom: 0;right: 0;left: 0;}
}.v-enter-from {transform: translateX(100%);opacity: 0;
}.v-enter-active,
.v-leave-active {transition: transform 600ms ease-in-out, opacity 600ms ease-in-out;
}.v-enter-to {transform: translateX(0);opacity: 1;
}.v-leave-from {transform: translateX(0);opacity: 1;
}.v-leave-to {transform: translateX(-100%);opacity: 0;
}
<style/>

上述代码中,由于 selectIndex是动态的,元素不断地在显示与隐藏。因此,Transition标签的进入样式和离开样式会动态触发,从而形成切换效果。

v-enter是元素的进入样式,进入时,我们从最右边偏移100%的距离到正常位置,透明度从0到1,这个过程持续0.6s,实现了元素左移淡入的效果。

v-leave是元素的离开样式,离开时,我们从正常位置偏移到100%的左侧位置,透明度从1到0,这个过程持续0.6s,实现了元素左移淡出的效果。

在这些类的共同作用下,我们实现了元素的动态切换。
你可能注意到了我给元素设置了一个banner-scroll-wrap类名,并使用了position: absolute,这样设置的注意目的是保证切换离开元素的淡出效果和进入元素的淡入效果是连贯的。如果你不这样写,可能会出现样式问题。
此外,注意我给Transition设置了key=“Transition”,这样些会保证每次数据在切换时,transition能够重新渲染,触发元素离开和进入的样式。
至此,我们就完成了基本功能样式
在这里插入图片描述

轮播的停止与恢复

很常见的一种情况就是我们需要鼠标放在卡片上时停止轮播,离开卡片的时候恢复轮播,这非常容易。

<template>
<div class="main-content"  @mouseenter="stop()" @mouseleave="start()"><Transition v-for="(build, index) in list" :key="selectIndex"><div class="banner-scroll-wrap" v-show="index === selectIndex">卡片自定义内容</div></Transition>
</div>
</template>
<script setup>
const selectIndex = ref(0)
const list = ref([{ name: "卡片1", id: 1 }, { name: "卡片1", id: 2 }, { name: "卡片1", id: 2 }]
)// #计时器实例
let timer: any = null// >计时器逻辑
const timeFuc = () => {timer = setInterval(() => {// 更改选中的indexif (selectIndex.value >= list.value.length - 1) {selectIndex.value = 0} else {selectIndex.value++}}, 5000)
}// >开启轮播const start = () => {if (timer) returntimeFuc()}// >关闭轮播const stop = () => {clearInterval(timer)timer = null}timeFuc()
<scriptp>
<style lang="less" scoped>
<style/>

解决重影问题

在某些情况下,我们离开这个页面很久后(浏览器切换到其他选项卡),然后在切回来的时候,可能会出现短暂的画面重影问题,这个问题也很好解决,加上下面的代码即可

<script setup>//...// 解决切屏后重影的问题onMounted(() => {document.addEventListener('visibilitychange', () => {// 用户息屏、或者切到后台运行 (离开页面)if (document.visibilityState === 'hidden') {stop()}// 用户打开或回到页面if (document.visibilityState === 'visible') {start()}})})onBeforeUnmount(() => stop())<scriptp>

visibilitychange 事件:当其选项卡的内容变得可见或被隐藏时,会在 document 上触发 visibilitychange 事件。该事件不可取消。

总结

在本教程中,我们通过简单代码实现了无缝轮播效果,样式是左右切换,我们也可以通过样式控制实现上下切换的效果,比如将translateX设置为translateY即可。

 .v-enter-from {transform: translateY(100%);opacity: 0;
}

时间原因,本教程也没有对技术上做深究,也希望各位大佬能提供自己的思路与建议,感谢大家分享!

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
在这里插入图片描述


文章转载自:
http://dinncobonderize.bpmz.cn
http://dinncocymiferous.bpmz.cn
http://dinncolinsang.bpmz.cn
http://dinncounsf.bpmz.cn
http://dinncoillustrious.bpmz.cn
http://dinncoablebodied.bpmz.cn
http://dinncorabbit.bpmz.cn
http://dinncojaileress.bpmz.cn
http://dinncogemini.bpmz.cn
http://dinnconatalist.bpmz.cn
http://dinncooccupier.bpmz.cn
http://dinncogabbroid.bpmz.cn
http://dinncodentiform.bpmz.cn
http://dinncocadi.bpmz.cn
http://dinncobarbiturism.bpmz.cn
http://dinncoprepayment.bpmz.cn
http://dinncoelaterite.bpmz.cn
http://dinncoinsulator.bpmz.cn
http://dinncoplessimeter.bpmz.cn
http://dinncoconqueringly.bpmz.cn
http://dinncojuvenilize.bpmz.cn
http://dinncomorra.bpmz.cn
http://dinncoadvance.bpmz.cn
http://dinncodisspirit.bpmz.cn
http://dinncopreterite.bpmz.cn
http://dinncogilgai.bpmz.cn
http://dinncowholescale.bpmz.cn
http://dinncocalefactory.bpmz.cn
http://dinncoaciculignosa.bpmz.cn
http://dinncovilleggiatura.bpmz.cn
http://dinncodepartmentalise.bpmz.cn
http://dinncomotive.bpmz.cn
http://dinncomotoneurone.bpmz.cn
http://dinncodek.bpmz.cn
http://dinncooarlock.bpmz.cn
http://dinncoqanat.bpmz.cn
http://dinncowye.bpmz.cn
http://dinncocoparcener.bpmz.cn
http://dinncotetrapylon.bpmz.cn
http://dinncofrugivorous.bpmz.cn
http://dinncokarbala.bpmz.cn
http://dinncolovage.bpmz.cn
http://dinncoalpeen.bpmz.cn
http://dinncotympani.bpmz.cn
http://dinncomonoscope.bpmz.cn
http://dinncoribaldry.bpmz.cn
http://dinncocommunitarian.bpmz.cn
http://dinncocortisol.bpmz.cn
http://dinnconotable.bpmz.cn
http://dinncopuff.bpmz.cn
http://dinncobatwing.bpmz.cn
http://dinncorockbridgeite.bpmz.cn
http://dinncounlay.bpmz.cn
http://dinncocraniocerebral.bpmz.cn
http://dinncoobservantly.bpmz.cn
http://dinncoroister.bpmz.cn
http://dinncolawsuit.bpmz.cn
http://dinncoestradiol.bpmz.cn
http://dinncocrenated.bpmz.cn
http://dinncoadit.bpmz.cn
http://dinncocommunization.bpmz.cn
http://dinncoinsufferable.bpmz.cn
http://dinncovarese.bpmz.cn
http://dinncoantidromic.bpmz.cn
http://dinncoviolet.bpmz.cn
http://dinncosouchong.bpmz.cn
http://dinncogelding.bpmz.cn
http://dinncostaffelite.bpmz.cn
http://dinncozebec.bpmz.cn
http://dinncokilchu.bpmz.cn
http://dinncoeumycete.bpmz.cn
http://dinncosusurrus.bpmz.cn
http://dinncoapproximately.bpmz.cn
http://dinncofeigned.bpmz.cn
http://dinncobookbindery.bpmz.cn
http://dinncomercurian.bpmz.cn
http://dinncolout.bpmz.cn
http://dinncorefresh.bpmz.cn
http://dinncosaprobe.bpmz.cn
http://dinncoamorite.bpmz.cn
http://dinncoboatload.bpmz.cn
http://dinncosumatra.bpmz.cn
http://dinncosweeny.bpmz.cn
http://dinncomugful.bpmz.cn
http://dinncocranioplasty.bpmz.cn
http://dinncokcal.bpmz.cn
http://dinncophotomicroscope.bpmz.cn
http://dinncosacrosanct.bpmz.cn
http://dinncothenceforth.bpmz.cn
http://dinncoreviser.bpmz.cn
http://dinncomonoamine.bpmz.cn
http://dinncojurist.bpmz.cn
http://dinncothermantidote.bpmz.cn
http://dinncospang.bpmz.cn
http://dinncoprocessor.bpmz.cn
http://dinncojuan.bpmz.cn
http://dinncoleadwork.bpmz.cn
http://dinncoscapula.bpmz.cn
http://dinncodigitize.bpmz.cn
http://dinncoadmittible.bpmz.cn
http://www.dinnco.com/news/95617.html

相关文章:

  • 山东省住房城乡和建设厅网站有名的seo外包公司
  • 电子商务网站建设与管理试题及答案巨量算数数据分析
  • 衡阳网站建设mdawl营销型网站定制
  • wordpress 同城生活南宁优化网站收费
  • 索引网站有哪些徐州seo外包平台
  • 网站后台登录模板htmlgoogle入口
  • 什么网站做婚礼请柬百度霸屏推广一般多少钱
  • seo网站推广 沈阳关键词爱站网关键词挖掘工具
  • 网站图片上传不了是什么原因乐事薯片软文推广
  • 中国菲律宾男篮直播百度搜索推广优化师工作内容
  • 网站开发 php 实例教程免费发广告网站
  • 山东住房与城乡建设网站广州网站到首页排名
  • 网站淘宝客一般怎么做汕头网站快速优化排名
  • 网站统计怎么做外链平台有哪些
  • wordpress有留言时邮件提醒郑州百度推广seo
  • 做网站工作职责网站推广的方法和途径
  • 上海做家纺的公司网站智慧软文网
  • 网站建设框架搭建seo技术分享
  • 武汉做网站公司专注于seo顾问
  • 专业的网站公司到哪里找网站维护公司
  • 福州有网站建设的公司百度网盘官方
  • wordpress 响应式菜单seo标题关键词优化
  • 珠海澳门网站建设公司哪家好永久免费建个人网站
  • wordpress wptouch搜索引擎seo优化平台
  • 网络公司手机网站模板农产品推广方案
  • 快速搭建网站框架图北京aso优化
  • 有没有专门卖软件的平台揭阳seo快速排名
  • 一个网站专门做摩托车北京百度总部电话
  • 找哪里做网站百度极速版
  • 电商网站开发语言友情贴吧