终极大招:网页、ios用视频,安卓用动图。

This commit is contained in:
zhcnyuyang 2025-05-18 19:35:18 +08:00
parent 810543f34d
commit 73be875641
6 changed files with 64 additions and 2 deletions

18
package-lock.json generated
View File

@ -11,6 +11,7 @@
"axios": "^1.6.8", "axios": "^1.6.8",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"bootstrap-icons": "latest", "bootstrap-icons": "latest",
"ismobilejs": "1.1.1",
"kdoffical": "file:", "kdoffical": "file:",
"path": "latest", "path": "latest",
"sass": "latest", "sass": "latest",
@ -1259,6 +1260,12 @@
"node": ">=0.12.0" "node": ">=0.12.0"
} }
}, },
"node_modules/ismobilejs": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
"integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==",
"license": "MIT"
},
"node_modules/kdoffical": { "node_modules/kdoffical": {
"resolved": "", "resolved": "",
"link": true "link": true
@ -2240,6 +2247,11 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"optional": true "optional": true
}, },
"ismobilejs": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
"integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw=="
},
"kdoffical": { "kdoffical": {
"version": "file:", "version": "file:",
"requires": { "requires": {
@ -2247,6 +2259,7 @@
"axios": "^1.6.8", "axios": "^1.6.8",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"bootstrap-icons": "latest", "bootstrap-icons": "latest",
"ismobilejs": "1.1.1",
"kdoffical": "file:", "kdoffical": "file:",
"path": "latest", "path": "latest",
"sass": "latest", "sass": "latest",
@ -2925,6 +2938,11 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"optional": true "optional": true
}, },
"ismobilejs": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
"integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw=="
},
"magic-string": { "magic-string": {
"version": "0.30.17", "version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",

View File

@ -15,7 +15,8 @@
"path": "latest", "path": "latest",
"sass": "latest", "sass": "latest",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-router": "latest" "vue-router": "latest",
"ismobilejs": "1.1.1"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue": "^4.0.0",

View File

@ -210,6 +210,9 @@ export default {
width: 100%; width: 100%;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
transform: translateZ(3px); //
-webkit-transform: translateZ(3px); //
will-change: transform; // 使
@include media-breakpoint-between(xs, md) { @include media-breakpoint-between(xs, md) {
height:70px; height:70px;
} }

View File

@ -83,6 +83,9 @@ export default {
#mobilebarroot{ #mobilebarroot{
position: fixed; position: fixed;
z-index: 100; z-index: 100;
transform: translateZ(3px); //
-webkit-transform: translateZ(3px); //
will-change: transform; //
@include media-breakpoint-between(xs, md) { @include media-breakpoint-between(xs, md) {
background-color: black; background-color: black;
display: flex; display: flex;

View File

@ -12,4 +12,18 @@ const app = createApp(App)
axios.defaults.baseURL = 'https://cms.yangprivate.site' axios.defaults.baseURL = 'https://cms.yangprivate.site'
// 全局挂载 axios所有组件都可以 this.$axios 访问 // 全局挂载 axios所有组件都可以 this.$axios 访问
app.config.globalProperties.$axios = axios app.config.globalProperties.$axios = axios
// 安全地获取 User Agent 并进行检测
let mobileDetectResult;
if (typeof navigator !== 'undefined') {
// isMobile() 函数需要一个 user-agent 字符串作为参数
mobileDetectResult = isMobile(navigator.userAgent);
} else {
// 为服务器端渲染 (SSR) 或其他非浏览器环境提供回退
// isMobile('') 会返回一个所有检测标志都为 false 的对象
mobileDetectResult = isMobile('');
}
app.config.globalProperties.$isMobile = mobileDetectResult;
app.use(router).mount('#app') app.use(router).mount('#app')

View File

@ -38,12 +38,33 @@
width: 100%; width: 100%;
height: auto; height: auto;
background-color: black; background-color: black;
position: relative position: relative;
z-index: 0; // 明确设置父容器z-index
overflow: hidden; // 帮助创建新的堆叠上下文
} }
.bannervideos{ .bannervideos{
width: 100%; width: 100%;
z-index: 0; z-index: 0;
position: relative; // 确保创建堆叠上下文
transform: translateZ(0); // 创建新的渲染层
-webkit-transform: translateZ(0);
backface-visibility: hidden; // 帮助创建硬件加速层
-webkit-backface-visibility: hidden;
-webkit-transform-style: preserve-3d; // 增强Android WebView渲染
// Android特定视频处理
-webkit-mask-image: -webkit-radial-gradient(white, black); // 帮助Android处理视频层
}
.videoimg{
width: 100%;
z-index: 0;
position: relative; // 确保创建堆叠上下文
transform: translateZ(0); // 创建新的渲染层
-webkit-transform: translateZ(0);
backface-visibility: hidden; // 帮助创建硬件加速层
-webkit-backface-visibility: hidden;
-webkit-transform-style: preserve-3d; // 增强Android WebView渲染
} }
.bannerovervideo{ .bannerovervideo{
@ -59,6 +80,8 @@
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
z-index: 2; z-index: 2;
transform: translateZ(1px); // 强制高于视频层
-webkit-transform: translateZ(1px);
pointer-events: none; pointer-events: none;
} }