<script>
// var vConsole = new VConsole();
// 定义一个名为 button-icon 返回顶部的新组件
Vue.component('button-icon', {
data: function () {
return {
btnFlag: false//返回顶部
};
},
mounted() {
window.addEventListener('scroll', this.scrollToTop);
},
destroyed() {
window.removeEventListener('scroll', this.scrollToTop);
},
methods: {
// 后退
navGoBack() {
history.back();
},
// 点击图片回到顶部方法,加计时器是为了过渡顺滑
backTop() {
const that = this;
let timer = setInterval(() => {
let ispeed = Math.floor(-that.scrollTop / 5);
document.documentElement.scrollTop = document.body.scrollTop = that.scrollTop + ispeed;
if (that.scrollTop === 0) {
clearInterval(timer);
}
}, 16);
},
// 为了计算距离顶部的高度,当高度大于60显示回顶部图标,小于60则隐藏
scrollToTop() {
const that = this;
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
that.scrollTop = scrollTop;
if (that.scrollTop > 90) {
that.btnFlag = true;
} else {
that.btnFlag = false;
}
}
},
template: '<van-icon name="back-top" v-if="btnFlag" class="go-top" @click="backTop"/>'
});
//定义一个名为 nav-back 返回上一页导航栏的新组件
Vue.component('nav-back', {
methods: {
// 后退
navGoBack() {
history.back();
}
},
template: '<van-nav-bar title="{$titleName}" left-arrow @click-left="navGoBack"></van-nav-bar>'
});
//图片超出隐藏
function onWidthHeight(width, height, obj) {
if (width > height) {
obj.style.height = '100%';
} else {
obj.style.width = '100%';
}
}
//判断是否是千帆
function isQianfan() {
let ua = window.navigator.userAgent.toLowerCase();
if (ua.toLowerCase().search('qianfan') !== -1) {
return true;
} else {
return false;
}
}
//公共底部标签
Vue.component('nav-footer-tabbar', {
data: function () {
return {
// active: 0
};
},
methods: {
qfGoBack(index) {
qfGoBack();
}
},
template: '<van-tabbar active-color="#1989FA" inactive-color="#000" placeholder="true" >\n' +
' <van-tabbar-item @click="qfGoBack()" icon="wap-home-o">返回APP</van-tabbar-item>\n' +
'</van-tabbar>'
});
function qfGoBack(index) {
QFH5.close();
}
</script>
vue-vant组件运用
最新推荐文章于 2025-03-30 21:02:13 发布