有好几个疑问
来源:3-11 自由编程
Aurora_Meteor
2020-05-12 21:23:46
1、我看老师在回答里说要用js?题目说滑过的时候宽度变为$num1+$num2,而且刚学了运算,不应该是使用scss的加法吗?使用js的话不就只能直接写入宽度值了?
我使用this.offsetWidth和this,offsetHeight来设置怎么打印结果是undefined呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="css/index.css">
</head>
<div></div>
<script>
let div = document.querySelector('div');
div.addEventListener('mouseover', () => {
this.offsetWidth = this.offsetWidth + this.offsetHeight;
});
</script>
<body>
</body>
</html>
$num1: 200px;
$num2: 100px;
$color: red;
div {
width: $num1;
height: $num2;
background-color: $color;
}
2、我把$num1、$num2、$color都定义在一个mixin里面,然后引入到div里面是有,可是引入以后说它们没有被定义,mixin里面只能直接写原生的css样式吗?不能写变量?
2回答
同学你好,关于同学的问题回答如下:
1、代码实现的方式有很多种,没有标准答案的,可以使用js实现,也可以不使用的。不使用js实现如下:
2、这里的this指向的是window,我们可以先打印出来看下:
因为在不使用箭头函数时,通过addEventListener添加事件,里面的this本身就指向的是事件调用者,同学再添加个箭头函数,就会指向调用者的父级,也就是window。我们可以再使用普通函数打印下:
所以同学在添加事件时,不用使用箭头函数,,这也是为什么会输出undefined。
3、因为offsetWidth是只读属性,所以不能给元素设置宽度。
4、@mixin里面是可以放变量的,如下:
祝学习愉快~
好帮手慕粉
2020-05-13
同学你好,关于同学的问题回答如下:
1、同学没有设置单位:
2、同学可以把定义的he当成是一个函数,而$num1就相当于函数的局部变量,外部是不可以使用的,所以在div里面不可以使用$num1和$num2,只能在he里面使用,在div里面引入he,只是借用了he的代码。
祝学习愉快~