vue 屏幕适配使用rem为单位第一步:在src路径下新建一个js文件夹,在创建一个resize.js文件;第二部:在resize.js文件内写入以下代码、

这段代码主要用于实现屏幕适配,通过监听窗口大小变化(orientationchange或resize事件)来调整document的fontSize,使其与窗口宽度成一定比例。在App.vue中引入后,能根据屏幕尺寸动态修改项目的根标签font-size。
摘要由CSDN通过智能技术生成
(function (doc, win) {
  var docEl = doc.documentElement,
    // orientationchange 当设备的方向变化(设备横向持或纵向)此事件被触发
    //判断窗口有没有orientationchange这个方法,有就赋值给一个变量,没有就返回resize方法。
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
      var clientWidth = docEl.clientWidth;
      //clientWidth:对象内容的可视区的宽度,不包滚动条等边线
      if (!clientWidth) return;
      //把document的fontSize大小设置成跟窗口成一定比例的大小
      docEl.style.fontSize = clientWidth * 0.0625 + 'px';
    };
  if (!doc.addEventListener) return; //DOMContentLoaded是firefox下特有的Event, 当所有DOM解析完以后会触发这个事件。
  win.addEventListener(resizeEvt, recalc, false);
  doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

第三步:在App.vue中的中引入该文件:代码如下

/*引入屏幕适配文件*/
  import {} from "../src/Third-party plug-ins/resize";

说明:以上操作是为修改项目的根标签的font-size:20px; 根据监听屏幕的大小进行修改font-size的值。

好的,以下一个使用 Vue 编写的简单但美观的文件发送模板示例: 首先,我们需要创建一个Vue组件来实现文件发送模板。以下是示例代码: ```html <template> <div class="container"> <h2>文件发送</h2> <form> <div class="form-group"> <label for="recipient">收件人:</label> <input type="text" id="recipient" v-model="recipient" /> </div> <div class="form-group"> <label for="subject">主题:</label> <input type="text" id="subject" v-model="subject" /> </div> <div class="form-group"> <label for="message">消息:</label> <textarea id="message" v-model="message"></textarea> </div> <div class="form-group"> <label for="file">选择文件:</label> <input type="file" id="file" ref="fileInput" @change="onFileSelected" /> </div> <div class="form-group"> <button type="button" @click="sendFile">发送</button> </div> </form> </div> </template> <script> export default { data() { return { recipient: '', subject: '', message: '', file: null, }; }, methods: { onFileSelected(event) { this.file = event.target.files[0]; }, sendFile() { // 发送文件 }, }, }; </script> <style> .container { max-width: 800px; margin: 0 auto; padding: 2rem; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); } form { display: flex; flex-direction: column; } .form-group { display: flex; flex-direction: column; margin-bottom: 1rem; } label { font-weight: bold; } input[type='text'], textarea { padding: 0.5rem; border: 1px solid #ccc; border-radius: 5px; resize: none; } button { padding: 0.5rem 1rem; background-color: #007bff; color: #fff; border: none; border-radius: 5px; font-size: 1rem; cursor: pointer; } button:hover { background-color: #0069d9; } </style> ``` 这个组件包含一个表单,用于输入收件人、主题、消息和要发送的文件。我们使用了一些 CSS 属性来美化页面。 在 `sendFile` 方法中,我们可以使用 `axios` 库来发送文件以下是示例代码: ```javascript import axios from 'axios'; methods: { sendFile() { const formData = new FormData(); formData.append('recipient', this.recipient); formData.append('subject', this.subject); formData.append('message', this.message); formData.append('file', this.file); axios.post('/api/sendfile', formData).then(() => { // 文件已发送 }); }, }, ``` 在这个方法中,我们首先创建一个 `FormData` 对象,然后将表单数据添加到其中。最后,我们使用 `axios.post` 方法发送文件。 在 `onFileSelected` 方法中,我们需要获取用户选择的文件。我们可以使用 `$refs` 来访问文件输入框,并从 `event.target.files` 中获取文件以下是示例代码: ```javascript onFileSelected(event) { this.file = event.target.files[0]; }, ``` 最后,我们需要在 Vue 组件中引入 axios 库,以便我们可以发送 HTTP 请求。以下是示例代码: ```javascript <script> import axios from 'axios'; export default { // ... methods: { // ... }, }; </script> ``` 这就是一个简单的文件发送模板的实现示例。您可以根据您的实际需求进行修改和扩展。希望可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值