vue backtop組件的實現完整代碼
效果:
代碼:
<template> <div class='back-top'> <div > <img src='http://www.aoyou183.cn/bcjs/imgsrc' : : @click='backTop'> </div> </div></template><script>export default { name: 'backTop', data(){ return { firstShow: false,//初始化隱藏組件 isHide: false, scrollFLag: true, } }, created() { document.addEventListener(’scroll’, () => { let scroll = document.documentElement.scrollTop if(scroll > 200){ this.isHide = false this.firstShow = true }else{ this.isHide = true } }) }, methods: { backTop(){ if(this.scrollFLag){ this.scrollFLag = false //屏幕高度 let scroll = document.documentElement.scrollTop let scrollTimer = setInterval(()=> { scroll -= 50 document.documentElement.scrollTop = Math.max(scroll, 0) if( scroll <= 0){ clearInterval(scrollTimer) } }, 10) this.scrollFLag = true } }, },}</script><style scoped lang='scss'>.back-top{ position: fixed; top: 0; right: 10vw; width: 20px; height: 500px; z-index: 200; .line{ width: 12vw; height: 100%; z-index: 20; cursor: pointer; opacity: 0.8; transform: translateY(-100%); &:hover{ opacity: 1; } } .isShow{ animation: back-top-move 0.5s forwards linear, back-top-yurayura 2s 0.6s forwards linear infinite; } .isHide{ animation: back-top-hide 0.5s forwards linear; }}@keyframes back-top-hide { from { transform: translateY(0); } to { transform: translateY(-100%); }}@keyframes back-top-move { to { transform: translateY(0); }}@keyframes back-top-yurayura { 0%{transform-origin: top center;transform: rotate(0)} 25%{transform-origin: top center;transform: rotate(2deg)} 75%{transform-origin: top center;transform: rotate(-2deg)} 100%{transform-origin: top center;transform: rotate(0)}}</style>
到此這篇關于vue backtop組件的實現完整代碼的文章就介紹到這了,更多相關vue backtop組件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
