0


uniapp用户设置字体大小

目前感觉没有特别完美的解决方法

1.首先新建一个功能js文件fongbase.js

export default {
    created() {
        const self = this;
 
    },
    mounted() {
        const self = this;
    },
    methods: {
        //设置字体
        getRootFontSize(){
            const self = this;
            var fontSize = getApp().globalData.rootFontSize;
            if(fontSize){
                return fontSize;
            }else{
                fontSize = uni.getStorageSync('root_font_size');
                if(fontSize){
                    getApp().globalData.rootFontSize=fontSize;
                }else{
                    fontSize='12px';//默认字体大小
                    self.setRootFontSize(fontSize);
                }
                return fontSize;
            }
        },
        setRootFontSize(fontSize){
            uni.setStorageSync('root_font_size',fontSize);
            getApp().globalData.rootFontSize=fontSize;
        },
 
    }
}

2.新建一个用户控制大小的界面,这里用的是uniapp的滑块组件

<template>
    <page-meta :root-font-size="getRootFontSize()"></page-meta>
    <view class="content">
        <view class=""><view class="" style="font-size: 1rem;">文字大小</view></view>
        <view class="" style="width:100%;padding: 0 20rpx;">
            <slider
                style="width: 100%;"
                min="12"
                max="16"
                :value="fontValue"
                @change="sliderChange"
                show-value
                step="2"
            />
        </view>
        <u-button type="primary" @click="submit">确定</u-button>
    </view>
</template>

<script>
import fontbase from '@/utils/fontbase.js';
export default {
    extends: fontbase,
    data() {
        return {
            fontValue: 12
        };
    },
    onLoad() {},
    onShow() {
        let a = this.getRootFontSize();
        let aa = a.substring(0, 2);
        this.fontValue = Number(aa);
    },
    methods: {
        submit() {
            uni.reLaunch({
                url:'/pages/v2-dealers/my/index'
            })
            console.log('submit');
        },
        sliderChange(e) {
            console.log('value 发生变化:' + e.detail.value);
            const self = this;
            let nowFontSize = e.detail.value + 'px';
            console.log(nowFontSize);
            self.fontEnd = nowFontSize;
            console.log(nowFontSize);
            self.setRootFontSize(nowFontSize);
        }
    }
};
</script>

<style>
.fontchange {
    font-size: 1rem;
}
.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 5px;
    box-sizing: border-box;
}

.logo {
    width: 100%;
    /* height: auto; */
    margin-top: 10px;
}

.text-area {
    display: flex;
    justify-content: center;
}

.title {
    font-size: 36rpx;
    color: #8f8f94;
}
</style>

3.在想要修改的页面加代码块内容,麻烦的就是需要一个个页面去添加,然后改单位,我的理解是page-mate的根字节大小改为了14px,那么单位要改为rem,1rem=14px,所以说这个字体大小感觉不是很精确

<page-meta  :root-font-size="getRootFontSize()"></page-meta>

    import fontbase from '@/utils/fontbase.js'
    export default {
        extends:fontbase,

.fontchange{
        font-size: 1rem;
    }

本文转载自: https://blog.csdn.net/m0_65720832/article/details/129853565
版权归原作者 白酱酱 所有, 如有侵权,请联系我们删除。

“uniapp用户设置字体大小”的评论:

还没有评论