返回顶部
首页 > 资讯 > 精选 >JavaScript与CSS和Sass的交互示例
  • 775
分享到

JavaScript与CSS和Sass的交互示例

2023-06-06 13:06:28 775人浏览 薄情痞子
摘要

这篇“javascript与CSS和Sass的交互示例”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“JavaScript与CSS和Sass的交互示例”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,

这篇“javascriptCSS和Sass的交互示例”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“JavaScript与CSS和Sass的交互示例”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。

JavaScript是什么

JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript是被广泛用于客户端的脚本语言,最早是在html网页上使用,用来给HTML网页增加动态功能。

JavaScript 和 CSS 已经并存超过了 20 年。但是在它们之间共享数据非常困难。当然也有大量的尝试。但是我所想到的是一些简单而直观的内容——不涉及结构更改,而是使用 CSS 自定义属性甚至 Sass 变量。

CSS 自定义属性和 JavaScript

自定义属性在这里应该不会令人感到惊讶。自浏览器提供支持以来??,他们一直在做的一件事就是与 JavaScript 协同工作以设置和操作值。

不过具体来说,我们可以通过几种方式使 JavaScript 与自定义属性一起工作。可以使用 setProperty 设置自定义属性的值:

document.documentElement.style.setProperty("--padding", 124 + "px"); // 124px

我们还可以用 JavaScript 中的 getComputedStyle 来检索 CSS 变量。其背后的逻辑非常简单:自定义属性是样式的一部分,因此它们是计算样式的一部分。

getComputedStyle(document.documentElement).getPropertyValue('--padding') // 124px

getPropertyValue 一样。这样我们就可以从 HTML 标记的内联样式中获得自定义属性值。

document.documentElement.style.getPropertyValue("--padding'"); // 124px

请注意,自定义属性是有作用域的。这意味着我们需要从特定元素获取计算样式。正如我们之前在:root 中定义变量一样,我们将它们放在 HTML 元素上。

Sass 变量和 JavaScript

Sass 是一种预处理语言,这意味着它在成为网站的一部分之前就已经变成了 CSS。所以无法用与 CSS 自定义属性相同的方式从 JavaScript 访问它们(可以在 DOM 中以计算样式访问它们)。

我们需要通过修改自己的构建过程来改变这一点。我怀疑在大多数情况下并不需要做太多,因为装载程序通常已经是构建过程的一部分。但是如果你的项目并非如此,则我们需要三个模块,这些模块能够导入和翻译 Sass 模块。

webpack 配置中看上去是这样:

module.exports = { // ... module: {  rules: [   {    test: /\.scss$/,    use: ["style-loader", "css-loader", "sass-loader"]   },   // ...  ] }};

为了使 Sass(或者在这种情况下,具体来说是 SCSS)变量可用于 JavaScript,我们需要 “export” 它们。

// variables.scss$primary-color: #fe4e5e;$background-color: #fefefe;$padding: 124px;:export {  primaryColor: $primary-color;  backgroundColor: $background-color;  padding: $padding;}

:export 块是 WEBpack 用来导入变量的。这种方法的好处是,我们可以用 camelCase 语法重命名变量,然后选择要公开的内容。

然后,把 Sass 文件(variables.scss)导入 JavaScript,从而可以访问文件中定义的变量。

import variables from './variables.scss';document.getElementById("app").style.padding = variables.padding;

值得一提的是对 :export 语法的一些限制:

  • 它必须在顶层,但可以在文件中的任何位置。

  • 如果文件中有多个,则将 key 和 value 组合在一起一并导出。

  • 如果特定的 exportedKey 被复制,则最后一个(按源顺序)优先。

  • exportedValue 可以含有在 CSS 声明值中任何有效的字符(包括空格)。

  • exportedValue 不需要被引用,因为它已经被当作文本字符串了。

有很多方法可以方便地访问 JavaScript 中的 Sass 变量。我倾向于使用这种共享断点的方法。下面是我的breakpoints.scs 文件,后来我将其导入 JavaScript 中,这样我可以用 matchMedia()方法得到一致的断点。

// Sass variables that define breakpoint values$breakpoints: (  mobile: 375px,  tablet: 768px,  // etc.);// Sass variables for writing out media queries$media: (  mobile: '(max-width: #{map-get($breakpoints, mobile)})',  tablet: '(max-width: #{map-get($breakpoints, tablet)})',  // etc.);// The export module that makes Sass variables accessible in JavaScript:export {  breakpointMobile: unquote(map-get($media, mobile));  breakpointTablet: unquote(map-get($media, tablet));  // etc.}

动画是另一个用例。动画的持续时间通常存储在 CSS 中,但是需要 JavaScript 的帮助才能完成更复杂的动画。

// animation.scss$global-animation-duration: 300ms;$global-animation-easing: ease-in-out;:export {  animationDuration: strip-unit($global-animation-duration);  animationEasing: $global-animation-easing;}

请注意,在导出变量时,我用了自定义 strip-unit 函数。这使我可以轻松地在 JavaScript 中解析内容。

// main.jsdocument.getElementById('image').animate([  { transfORM: 'scale(1)', opacity: 1, offset: 0 },  { transform: 'scale(.6)', opacity: .6, offset: 1 }], {  duration: Number(variables.animationDuration),  easing: variables.animationEasing,});

这样就能轻松地在CSS、Sass 和 JavaScript 之间交换数据。共享这样的变量使代码简单而不啰嗦。

当然还有多种方法可以实现相同的目的。 Les James 分享了一种有趣的方法,该方法允许 Sass 和 JavaScript 通过 JSON 进行交互。我对此可能存有偏见,但是我发现在这里介绍的方法是最简单、最直观的。无需对你已经在使用和正在编写的 CSS 和 JavaScript 进行疯狂的修改。

感谢你的阅读,希望你对“JavaScript与CSS和Sass的交互示例”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注编程网精选频道!

--结束END--

本文标题: JavaScript与CSS和Sass的交互示例

本文链接: https://lsjlt.com/news/246989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript与CSS和Sass的交互示例
    这篇“JavaScript与CSS和Sass的交互示例”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“JavaScript与CSS和Sass的交互示例”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,...
    99+
    2023-06-06
  • MySQL和Python交互的示例
    一.准备数据 创建数据表 -- 创建 "京东" 数据库 create database jing_dong charset=utf8; -- 使用 "京东" 数据库 use jing_dong; -- 创建...
    99+
    2022-05-18
    python mysql
  • Servlet3.0与纯javascript通过Ajax交互的示例分析
    这篇文章主要介绍Servlet3.0与纯javascript通过Ajax交互的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!虽然js.html是一个纯静态的页面,但是以下的程...
    99+
    2024-04-02
  • PHP与JavaScript下Cookie交互使用的示例分析
    小编给大家分享一下PHP与JavaScript下Cookie交互使用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!PHP与JavaScript下Cookie的交互使用下面的例子列出几种情形交互场景,列出JS和ph...
    99+
    2023-06-15
  • CSS和Sass开发规范的示例分析
    这篇文章将为大家详细讲解有关CSS和Sass开发规范的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ID and class naming ID和class(类)...
    99+
    2024-04-02
  • CSS框架sass的示例分析
    这期内容当中小编将会给大家带来有关CSS框架sass的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。sass结尾的文件有着更严格的格式要求,scss文件更贴近原生...
    99+
    2024-04-02
  • Flex和Html交互的示例分析
    这篇文章给大家分享的是有关Flex和Html交互的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex和Html交互◆Flex和Html交互之Flex嵌入到Html:用swfobject,下载的.js地...
    99+
    2023-06-17
  • Vue.js 和 Sass:实现交互式和美观的 Web 界面
    Vue.js 简介 Vue.js 是一个渐进式的 JavaScript 框架,用于构建单页面应用程序 (SPA)。它以其响应式、组件化和基于视图的方法而闻名。Vue.js 提供了一系列工具来创建动态和交互式 Web 界面,包括: 数据...
    99+
    2024-02-17
    Vue.js Sass 预处理器 Web 界面 CSS
  • android中webview控件和javascript交互实例
    当我们要实现丰富的图文混排效果的时候,我们一般会使用webview,这是一个功能十分强大的的控件,来看看官方的解释: 代码如下:A View that displays we...
    99+
    2022-06-06
    webview JavaScript Android
  • ASP文件如何与JavaScript和Shell交互?
    ASP(Active Server Pages)是一种动态网页技术,它可以在服务器端执行代码并生成动态内容。与JavaScript和Shell交互是ASP的一项重要功能,它可以让我们更加灵活地处理数据和执行操作。本文将介绍ASP如何与Ja...
    99+
    2023-06-05
    文件 javascript shell
  • 前端ajax与后端交互的示例分析
    这篇文章主要介绍了前端ajax与后端交互的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前端中常常用的与后端交换数据的话,通常是要用...
    99+
    2024-04-02
  • CSS预处理器Sass的示例分析
    这篇文章主要介绍CSS预处理器Sass的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (neste...
    99+
    2023-06-08
  • Vue前后端数据交互与显示的示例分析
    小编给大家分享一下Vue前后端数据交互与显示的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、技术概述将后端所计算的数据呈现在前端页面的相应位置并根据用...
    99+
    2023-06-15
  • vue-Resource与后端数据交互的示例分析
    这篇文章主要为大家展示了“vue-Resource与后端数据交互的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-Resource与后端数据交互的...
    99+
    2024-04-02
  • React Native与IOS端之间交互的示例分析
    这篇文章给大家分享的是有关React Native与IOS端之间交互的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前置准备首先最好了解一点关于 oc 的语法知识创建声明文件nativeModule.h#...
    99+
    2023-06-15
  • Android中js和原生交互的示例代码
    本文介绍了Android中js和原生交互的示例代码,分享给大家,具体如下:加载webview的类public class MainActivity extends Activity { @Override protected void ...
    99+
    2023-05-30
    android js 交互
  • QT与javascript交互数据的实现
    一、数据从QT流向JS 1、QT调用JS的函数,JS通过形参获得QT的值 2、JS调用QT的函数,QT函数的返回值进入JS 二、数据从JS流向QT 1、JS调用QT的函数,QT通过形...
    99+
    2024-04-02
  • HTML 音频标签与 JavaScript 的交互
    HTML 的 <audio> 标签允许网页播放音频,而 JavaScript 则提供了操纵音频播放的强大功能。通过将两者结合,开发者可以创建交互式和引人入胜的音频体验。 获取音频对象 获取 HTML 中的 <audio&...
    99+
    2024-03-15
    音频标签
  • android中WebView和javascript实现数据交互实例
    在看懂这篇文章之前首先要有javascript基础。 (1) js调用android的方法: 代码如下:WebView wView; wView. addJavascript...
    99+
    2022-06-06
    数据 webview JavaScript Android
  • laravel使用workerman用户交互、服务器交互的示例分析
                               laravel使用workerman 用户交...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作