console.log(box.style.height)打印不出来数据是为什么
时间: 2023-12-11 11:03:06 浏览: 37
如果 `console.log(box.style.height)` 打印不出来数据,可能是因为 `box` 元素的 `style` 属性中没有设置 `height` 属性。请确保 `box` 元素中设置了 `height` 属性,或者使用 `getComputedStyle` 方法来获取样式属性值,如下所示:
```
console.log(getComputedStyle(box).height);
```
这个方法可以获取元素计算后的样式属性值,无论它是在样式表中定义的还是在元素的 style 属性中定义的。
相关问题
touchmove(e) { console.log(this.$refs.dragToBox.$el,this.dom,'==',this.$refs.dragToBox.$el.offsetTop) if (this.canDrag && this.dom) { let picDom = this.$refs.dragPic.$el let picTop = picDom.offsetTop let picHeight = picDom.offsetHeight let picLeft = picDom.offsetLeft let picWidth = picDom.offsetWidth console.log('picDom:'+picDom,'picTop:'+picTop,'picHeight:'+picHeight,'picLeft:'+picLeft,'picWidth:'+picWidth) let boxDom = this.$refs.dragToBox.$el let boxHeight = boxDom.offsetHeight let boxWidth = boxDom.offsetWidth let boxTop = boxDom.offsetTop let boxLeft = boxDom.offsetLeft console.log('boxDom:'+boxDom,'boxHeight:'+boxHeight,'boxWidth:'+boxWidth,'boxTop:'+boxTop,'boxLeft:'+boxLeft) let to = this.dom let toH = to.offsetHeight let toW = to.offsetWidth let toPageH = e.touches[0].pageY - toH / 2 - boxTop let toPageW = e.touches[0].pageX - toW / 2 - boxLeft console.log('to:'+to,'toH:'+toH,'toW:'+toW,'toPageH:'+toPageH,'toPageW:'+toPageW) if(!this.el.enterPic && (picHeight + picTop - 38) > toPageH) { this.el.enterPic = true } if (!this.item.child[this.index + 1]) { this.item.child[this.index + 1] = { isMove: false, enterPic: false, left: 0, top: 0 } this.sqArr = Object.assign([], this.sqArr) } this.el.isMove = true if (toPageH >= 0 && ((this.el.enterPic && toPageH <= picHeight) || (!this.el.enterPic)) && toPageH <= window.innerHeight - toH) { this.el.top = `${((toPageH * 100) / boxHeight)}%` // this.el.top = toPageH + 'px' } if (toPageW >= picLeft && toPageW <= (picLeft + picWidth-toH) && toPageW <= window.innerWidth - toW) { // this.el.left = toPageW + 'px' this.el.left = `${(toPageW * 100) / boxWidth}%` } } },
这段代码是一个 `touchmove` 事件的处理函数。在移动触摸过程中,根据触摸点的位置和元素的尺寸,计算并更新元素的位置。
首先,获取了一些元素的引用和尺寸信息,比如 `picDom` 表示一个名为 `dragPic` 的元素,`boxDom` 表示一个名为 `dragToBox` 的元素。
然后,根据触摸点的位置和元素的尺寸,计算了一些值,如 `toPageH` 表示触摸点相对于某个元素的垂直位置,`toPageW` 表示触摸点相对于某个元素的水平位置。
根据这些计算出来的值,更新了元素的位置信息,如 `this.el.top` 和 `this.el.left` 分别表示元素的垂直和水平位置。
最后,根据一些条件判断,更新了一些状态变量,如 `this.el.isMove` 表示元素是否正在移动,`this.el.enterPic` 表示元素是否进入了特定条件下。
整个代码逻辑是基于触摸点位置和元素尺寸的计算和判断,实现了元素的拖拽效果。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>动态属性</title> </head> <body> <style> * { margin: 0; padding: 0; } #bigbox { width: 600px; height: 300px; margin: 50px auto; border: 1px solid skyblue; overflow: hidden; } #box { width: 200px; height: 200px; background-color: brown; } </style> <div id="bigbox"> 属性名:<input type="text" id="input1" /> 属性值:<input type="text" id="input2" /> <button id="btn1">更改</button> <div id="box"></div> </div> </body> <script> var box = document.getElementById("box"); var btn1 = document.getElementById("btn1"); btn1.onclick = function () { var input1 = document.getElementById("input1"); var input2 = document.getElementById("input2"); var a; var b; a = document.getElementById("input1").value; console.log(a); // box.style.width = document.getElementById("input1").value; }; </script> </html> 修改代码 在input1输入属性名 inout2输入属性值 并把属性赋给box
可以将以下代码替换掉原先的btn1.onclick事件处理程序:
```
btn1.onclick = function () {
var input1 = document.getElementById("input1");
var input2 = document.getElementById("input2");
var a = input1.value;
var b = input2.value;
console.log(a, b);
box.style[a] = b;
};
```
这样,点击“更改”按钮后,会将输入框中的属性名和属性值赋给box元素的对应属性,从而实现动态属性修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<template> 学生签到系统 <input type="text" v-model="student.S_id" placeholder="请输入学号"> <input type="text" v-model="student.S_pwd" placeholder="请输入密码"> 登录 班级尚未开启签到 <button @click="close">取消</button> </template> <script> import qs from "qs" import axios from "axios"; export default { name: "Login", data(){ return{ //弹窗 show:false, student:{ S_id:null, S_pwd:null, } } }, methods: { close() { this.show = false; // 隐藏弹出窗口 }, Login() { let param = qs.stringify(this.student); axios.post('/xx/students/login', param).then((response) => { //获取当前学生的班级信息并传入sessionStorage,参数为S_class sessionStorage.setItem('classInfo', response.data.data.s_class); //获取当前学生的id信息并传入sessionStorage sessionStorage.setItem('studentId', this.student.S_id); //弹窗 if (response.data.msg === "账号或密码错误"){ this.show = true; } if (response.data.code == 200) { this.$router.push({"path": "/signLog"}) } }).catch((error) => { console.log(error); }); } } } </script> <style scoped> .wrapper > h2{ text-align: center; margin: 40px 0px; } .content{ padding: 8px; } .form-item { margin-bottom: 20px; } .form-item > input{ width: 100%; height: 40px; padding: 4px; outline: none; border: 1px solid rebeccapurple; box-sizing: border-box; } .form-item > a{ display: inline-block; width: 100%; height: 40px; background-color: sandybrown; text-align: center; line-height: 40px; } .form-item > 这段代码要怎么样实现弹窗
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)