Home > Web Front-end > uni-app > body text

uniapp modifies style in method function

PHPz
Release: 2023-05-26 17:22:08
Original
1607 people have browsed it

In the development of uniapp, we often need to dynamically modify the style of the page, and one of the common methods is to change the style in the method function. In this article we will describe how to implement this method.

Generally speaking, we can modify the style by using the built-in methods provided by uni-app in the function. For example, we can use uni.$refs in the function to get a certain component in the page. Then, we can dynamically modify the style through the component's properties, such as style and class.

Let us use a specific example to help you better understand this process. Suppose we have a login page for a small program, where the layout style of the page is as follows:

<template>
  <view>
    <form>
      <input type="text" placeholder="用户名" />
      <input type="password" placeholder="密码" />
      <button>登录</button>
    </form>
  </view>
</template>

<style scoped>
  form {
    width: 80%;
    margin: 10vw;
    padding: 5vw;
    background-color: #fff;
  }
  input {
    margin-bottom: 3vw;
    width: 100%;
    height: 10vw;
    border: 0;
    border-radius: 3vw;
    background-color: #f2f2f2;
  }
  button {
    width: 100%;
    height: 12vw;
    border: 0;
    border-radius: 3vw;
    color: #fff;
    background-color: #007aff;
    font-size: 4.5vw;
  }
</style>
Copy after login

Let us assume that we now need to implement the following requirements: when the user submits the form, if an input box in the form is not filled in , you need to change the color of its bottom border to red. Specifically, we need to change the value of the placeholder attribute to unfilled and add the style border-bottom-color: red to the input box.

To achieve this requirement, we first need to use the uni.$refs method to obtain the input box component, and then we need to change the style of the component.

<template>
  <view>
    <form>
      <input ref="username" type="text" placeholder="用户名" />
      <input ref="password" type="password" placeholder="密码" />
      <button @click="login">登录</button>
    </form>
  </view>
</template>

<script>
export default {
  methods: {
    login() {
      if (!this.$refs.username.value.trim()) {
        this.$refs.username.placeholder = '未填写'
        this.$refs.username.style.borderBottomColor = 'red'
      }

      if (!this.$refs.password.value.trim()) {
        this.$refs.password.placeholder = '未填写'
        this.$refs.password.style.borderBottomColor = 'red'
      }
    },
  },
}
</script>
Copy after login

In the above code, we added the ref attribute to each input box component to obtain a reference to the component. In the login function, we determine whether the content of the input box is empty. If it is empty, we change the value of the placeholder attribute to Unfilled and add a style to the input box. border-bottom-color: red.

Note that we are using $refs. instead of refs., this is because in uni-app, $refs is A built-in object that can access all components with ref properties.

In short, through this article, we learned how to modify the style in the method function in uni-app. Of course, this is just one of the implementation methods, and there are many other methods, such as using the this.setData() method in a function to change the data state, using CSS pseudo-class selectors, and so on. By mastering these skills, we can be more flexible in adapting our page styles to meet user needs.

The above is the detailed content of uniapp modifies style in method function. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template