vue 移动端/PC常见问题及解决方法
一、判断手机/PC浏览器语言
navigator.language // 返回语言代码
语言代码文档: http://www.lingoes.cn/zh/translator/langcode.htm
二、获取滚动条位置
// html结构
<template lang="pug">
div.home-box(@scroll="scorllChangeColor")
<template>
// methods中声明方法
methods: {
scorllChangeColor(event) {
if( this.scrollTopFlag && event.target.scrollTop > 560) {
this.scrollTopFlag = false
this.scrollBtmFlag = true
document.querySelector('.home-topbar').style.backgroundColor = '#1D0A60'
}else if(this.scrollBtmFlag && event.target.scrollTop < 560) {
this.scrollTopFlag = true
this.scrollBtmFlag = false
document.querySelector('.home-topbar').style.backgroundColor = 'rgba(0, 0, 0, 0.3)'
}
}
}
三、回到顶部
// html结构
<!-- backTop 回顶部的方法 -->
<button class="go-top" @click="backTop">回到顶部</button>
// 周期及方法
// vue的两个生命钩子,这里不多解释。
// window对象,所有浏览器都支持window对象。它表示浏览器窗口,监听滚动事件
mounted () {
window.addEventListener('scroll', this.scrollToTop)
},
destroyed () {
window.removeEventListener('scroll', this.scrollToTop)
}, methods: {
// 点击图片回到顶部方法,加计时器是为了过渡顺滑
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 > 60) {
that.btnFlag = true
} else {
that.btnFlag = false
}
}
}
四、弹出层遮罩滑动穿透
1、通过vue "@touchmove.prevent"指令
<div
class="wechat-img"
@click="hideWchat"
v-if="showModal"
@touchmove.prevent // vue中可以直接添加指令
>
<img
@click="hideWchat"
src="../assets/images/home/mp-wechat.jpg"
alt
/>
</div>
2、通过遮罩的显示或隐藏设置滚动元素的overflow: hidden
// html 结构
<div :class="show?'home hidden':'home'">
<style>
.hidden {
overflow: hidden;
position: absolute;
width: 100vw;
height: 100vh;
</style>
五、国际化
// 安装
npm install vue-i18n
# OR
yarn add vue-i18n
// 创建语言包文件
// main.js
import Vue from 'vue'
import App from './App.vue'
import VueI18n from 'vue-i18n'
import router from './router'
import store from './store'
import { zh } from './common/lang/zh'
import { en } from './common/lang/en' Vue.use(VueI18n) // 通过插件的形式挂载 const i18n = new VueI18n({
locale: 'zh-CN', // 语言标识
//this.$i18n.locale // 通过切换locale的值来实现语言切换
messages: {
'zh-CN': zh, // 中文语言包
'en-US': en // 英文语言包
}
}) Vue.config.productionTip = false new Vue({
router,
i18n, // 挂载
store,
render: h => h(App)
}).$mount('#app')
// html 中使用
<p class="header-img-intro">{{ $t('home.imgIntro1') }}</p>
<p class="header-img-intro1">{{ $t('home.imgIntro2') }}</p>
六、判断手机、ipad、电脑
/(iphone|ipod|ipad|ipad|Android|nokia|blackberry|bada|lg|ucweb|skyfire|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|wap|mobile)/i.test(navigator.userAgent) // true->手机/ipad
参考地址:https://www.cnblogs.com/h5c3/p/6542799.html
https://www.jianshu.com/p/821c8a10d14f
https://blog.csdn.net/qq_36070288/article/details/84765139
vue 移动端/PC常见问题及解决方法的更多相关文章
- vue.js开发SPA常见问题及解决方法
列表进入详情页的传参问题. 例如商品列表页面前往商品详情页面,需要传一个商品id; <router-link :to="{path: 'detail', query: {id: 1}} ...
- Nacos 常见问题及解决方法
Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈.在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续 ...
- NHibernate常见问题及解决方法
NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...
- MySQL程序端启动密码错误解决方法
MySQL程序端启动密码错误解决方法 一般启动MySQL程序端,都是用mysql -uroot -p命令,当然前提是你的环境变量已经配好了. 为了连接服务器,当调用mysql时,通常需要提供一个MyS ...
- C#用ado.net访问EXCEL的常见问题及解决方法
C#用ado.net访问EXCEL的常见问题及解决方法,除了像sql server,access常见的数据库,其实Excel文件也可以做为数据库访问. ado.net访问excel的实例: OleDb ...
- ajax跨域POST时执行OPTIONS请求服务端返回403forbidden的解决方法
ajax访问服务端restful api时,由于contentType类型的原因,浏览器会先发送OPTIONS请求. 本人服务端用的是spring mvc框架,web服务器用的是tomcat的,以下给 ...
- 整理前端css/js/jq常见问题及解决方法(2)
移动端 手机 1.点击图片或按钮,选中状态影响到其他范围解决:html{-webkit-user-select:none}<meta name="msapplication-tap-h ...
- Asp.net MVC Razor常见问题及解决方法
没有经验的童鞋就是这样磕磕碰碰出来的经验. 1,Datatype的错误提示消息无法自定义 这也许是Asp.net MVC的一个Bug.ViewModel中定义了DataType为Date字段: [Re ...
- 安装scrapy框架的常见问题及其解决方法
下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...
随机推荐
- Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- 5分钟快速部署PESCMS TEAM 团队任务管理系统开发版
所在的公司也经历过小团队的发展,为了高效率,通常都是面对面交流,很多时候事情谈论过后不久就已经淡忘了.而且工作任务不能全局观察,成员之间基本上都要主动去询问,效率反而低下.所以今天就介绍一款中小团队的 ...
- iOS 国际化 (国际化文字内容不改变,app名字国际化,一键切换语言)
首先我们要分三个步骤讲解怎么一步步实现app名字国际化.内容国际化.一键切换国际化的: 一.app设置内容或者可以说是app名字或者可以说Info.Plist中的东西国际化 app名字国际化 1. ...
- c++学习书籍推荐《超越C++标准库:Boost库导论》下载
<超越C++标准库Boost库导论>不仅介绍了Boost库的功能.使用方法及注意事项,而且还深入讨论了Boost库的设计理念.解决问题的思想和技巧以及待处理的问题.因此,本书是一本了解Bo ...
- maven打包报错问题解析
1. 场景描述 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean (default-clea ...
- P2344 奶牛抗议 离散化+前缀和+动态规划+树状数组
[题目背景] Generic Cow Protests, 2011 Feb [题目描述] 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正 ...
- TCP/IP协议-网络编程
本文转载自公众号“呆呆熊一点通”,作者:呆呆 开篇语 前两年, 就买了<TCP/IP网络编程>这本书, 由于自身基础薄弱, 只是走马观花翻阅了几张. 后来工作了这些年, 越来越感到瓶颈期已 ...
- 20131207-ADO.NET-第十六天
[1]快捷键 工具箱:ctrl+w+x 首字母定位控件范围 属性:F4 或ctrl+w+p Tab跳转 ,home 与end也有效 [2]连接字符串 string str = "Data S ...
- ZIP:GZIP
GZIPInputStream: GZIPInputStream(InputStream in) :使用默认缓冲区大小创建新的输入流. GZIPInputStream(InputStream in, ...
- [记录]Python的master-worker和epoll模式
#master-worker模型: #coding:utf-8 import os import sys import socket import time import traceback impo ...