vue页面同时适配手机端和PC端

用到的技术点

1.判断是否是PC端

2.@media 屏幕适配常用尺寸

3.vue watch 监听

4.document.body.clientWidth 获取屏幕尺寸

<template>
    <div class="body">
        <el-table :data="tableData" style="width: 100%">
            <el-table-column prop="date" label="日期" :width="isPC ? '500' : '110'">
            </el-table-column>
            <el-table-column prop="name" label="姓名" :width="isPC ? '200' : '110'">
            </el-table-column>
            <el-table-column prop="address" label="地址" ::width="isPC ? '300' : '110'">
            </el-table-column>
        </el-table>
    </div>
</template>

<script>
export default {
    data() {
        return {
            screenWidth: 0,
            isPC: this.isPCNot(),
            tableData: [{
                date: '2016-05-02',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }, {
                date: '2016-05-04',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1517 弄'
            }, {
                date: '2016-05-01',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1519 弄'
            }, {
                date: '2016-05-03',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1516 弄'
            }]
        }
    },
    watch: {
        screenWidth: {
            handler: function (val, oldVal) {
                if (val < 750) {
                    this.isPC = false
                } else {
                    this.isPC = true
                }
                console.log(this.isPC);
            },
        },

    },
    mounted() {
        this.screenWidth = document.body.clientWidth
        window.onresize = () => {
            return (() => {
                this.screenWidth = document.body.clientWidth
            })()
        }
    },
    methods: {
        isPCNot() {
            var userAgentInfo = navigator.userAgent;
            var Agents = ["Android", "iPhone",
                "SymbianOS", "Windows Phone",
                "iPad", "iPod"];
            var flag = true;
            for (var v = 0; v < Agents.length; v++) {
                if (userAgentInfo.indexOf(Agents[v]) > 0) {
                    flag = false;
                    break;
                }
            }
            return flag;
        }
    }
};
</script>

<style scoped>
@media screen and (max-width: 750px) {
    .body {
        width: 90%;
        margin: 0 auto;
        background-color: #f1f1f1;
    }
}

@media screen and (min-width: 750px) {
    .body {
        margin: 0 auto;
        width: 50%;
        background-color: #f1f1f1;
    }
}
</style>

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,vue-pure-admin是一个使用了Vue3、Vite、Element-Plus等技术开发的中后台管理系统模板。然而,对于vue2和ElementUI适配手机端的问题,vue-pure-admin并不直接提供相关的解决方案。但是,我们可以通过其他方式来适配手机端。 一种常见的方式是使用响应式设计和媒体查询来适配不同的屏幕尺寸。Vue2和ElementUI都支持响应式设计,可以根据屏幕尺寸的变化来调整布局和样式。媒体查询可以根据不同的屏幕尺寸应用不同的CSS样式。 另一种方式是使用移动端UI框架,例如Vant或Mint UI。这些框架专门为移动端设计,提供了丰富的组件和样式,可以更好地适配手机端。 下面是一个示例代码,演示如何使用Vue2和ElementUI进行手机端适配: ```html <template> <div class="container"> <el-button type="primary" @click="showDialog">打开对话框</el-button> </div> </template> <script> export default { data() { return { dialogVisible: false } }, methods: { showDialog() { this.dialogVisible = true; } } } </script> <style> .container { padding: 20px; } @media (max-width: 768px) { .container { padding: 10px; } } </style> ``` 在上面的示例中,我们使用了ElementUI的`el-button`组件,并在CSS中使用了媒体查询来调整容器的内边距。当屏幕宽度小于等于768px时,容器的内边距会变为10px。 请注意,以上只是一个简单的示例,实际的适配工作可能涉及到更多的组件和样式调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MW0309

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值