JavaScript 03 — CSS Variables

实现效果

利用JavaScript及CSS3来改变CSS的值,使得拖动滑块及选中颜色时,可以实时调整图片的内边距(padding)、模糊度(blur)及背景颜色(background)。

<script>
// 1、监听input控件,当有change事件或mousemove事件发生的时候(这时候就需要遍历每个input),就调用函数
// change 当值发生变化的时候就触发,input事件必然伴随change事件
// 当鼠标在指定的元素上移动时,就会发生 mousemove 事件,这个事件监听能提高input控件的流畅性
// 2、用js改变css属性
// 如果属性很多,控件很多,就要做很多种判断,这样会造成代码冗余,可以用CSS变量来控制

const inputs = document.querySelectorAll('.controls input')
// const img = document.querySelector('img')

function handleUpdate() {
  // console.log(this);  //this代表当前控件
  const suffix = this.dataset.sizing || ''
  // 针对前两个参数值的单位为'px',针对颜色为空,以防报错。
  document.documentElement.style.setProperty(`--${this.name}`, this.value + suffix)
}

inputs.forEach(input =>
  input.addEventListener('change', handleUpdate)
)
inputs.forEach(input =>
  input.addEventListener('mousemove', handleUpdate)
)

</script>
/*
本质是用js改变css变量
DOMStringMap 在使用dataset属性中被用到,用于容纳和展示元素的自定义属性

data-* 全局属性 是一类被称为自定义数据属性的属性,它赋予我们在所有 HTML 元素上嵌入自定义数据属性的能力,并可以通过脚本在 HTML 与 DOM 表现之间进行专有数据的交换。

document.documentElement
返回DOM中的root节点
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
variables.scss是一个用于定义全局SCSS变量的文件。在这个文件中,可以使用$符号来定义各种变量,并在整个项目中重复使用这些变量。 在第三步中,你需要创建一个名为variables.scss的文件,并在其中定义你需要的全局变量,比如$namespace和$elNamespace。这些变量可以根据你的项目需求来定义和命名。 在第四步中,如果你需要在JavaScript或TypeScript中与variables.scss进行交互,你可以通过引入variables.scss文件来使用其中定义的变量。你可以使用import语句将variables.scss文件引入到你的代码中,并通过变量名来访问这些变量的值。例如,你可以使用console.log(variables)来打印variables.scss文件中定义的变量的值。 在第五步中,你需要在vite.config.ts/vite.config.js文件中引入variables.scss文件,以便在整个项目中使用这些全局样式。你可以在vite.config.ts/vite.config.js文件的css选项中配置预处理器选项,将variables.scss文件作为额外的数据引入。这样,你就可以在整个项目中使用variables.scss中定义的变量了。 需要注意的是,在使用variables.scss文件时,命名规则必须为xxx.module.scss,这样才能在JavaScript中正确地获取到变量的值。你可以使用@import语句将variables.scss文件引入到需要使用这些变量的地方,并使用:export关键字将变量导出,以便在其他地方使用。例如,你可以在variables.scss文件中使用@import './variables.scss'和:export { namespace: $namespace, elNamespace: $elNamespace }来导出变量的值。 总结起来,variables.scss是一个用于定义全局SCSS变量的文件,在项目中可以通过引入和使用这些变量来实现样式的统一和重复使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [史上最详细的vite引入scss全局变量详解](https://blog.csdn.net/m0_38085253/article/details/126967511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值