最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JavaScript30之用js控制css變量

2023-03-24 01:37 作者:愛搞事的木易  | 我要投稿

實現(xiàn)效果

滑動滑塊,可以改變圖片 padding 大小和圖片的模糊度,選擇顏色,可以修改圖片背景顏色和 "JS" 文字顏色

技術(shù)分析

  • 滑塊移動改變 padding 和模糊度(監(jiān)聽 mousemove 事件修改 style 樣式

  • 選擇顏色改變背景顏色和文字顏色(監(jiān)聽 change 事件修改 style 樣式

實現(xiàn)步驟

1. 獲取對應(yīng)的 input 元素并添加 change 和 mousemove 事件

從本文開始,事件監(jiān)聽我將用箭頭函數(shù)的形式進行編寫

? 獲取對應(yīng)的 input 的元素并對 change 和 mousemove 事件進行監(jiān)聽

????? 為什么要監(jiān)聽兩個事件呢?因為我們要使用 mousemove 事件來監(jiān)聽滑塊的改變,change事件來監(jiān)聽顏色的改變,只使用一個事件是無法監(jiān)聽兩個操作的

? 設(shè)置一個 changeHandler 函數(shù)來打印一下結(jié)果

????? 此時我們可以看到控制臺打印出對應(yīng)的信息(name 和 value)

????? 我們此時已經(jīng)獲得了想要改變的值 value

????? 將 value 值賦值給對應(yīng)的 style 就可以實現(xiàn)想要的效果了

打印name和value
打印結(jié)果

2. 修改對應(yīng)樣式

? 這里修改樣式有兩種做法,這里我將兩種做法都介紹給大家,一種是利用switch按條件更改樣式,一種是利用CSS變量來更改樣式(視頻中的做法)

利用switch按條件更改樣式

? 根據(jù) input 的 name 屬性判斷我們操作了哪一個 input 元素,然后進行樣式的修改

switch
css變量

利用CSS變量來更改樣式

? 我們先添加如下圖所示的 css 變量

:root 其實就代表的是 html

打印結(jié)果為true

打印結(jié)果為true

CSS變量在使用時需要先聲明(--開頭),然后使用的時候要使用 var() 來進行包裹,只有后代元素可以使用聲明的 CSS 變量,這就是為什么我們總把 CSS 變量寫在 :root 選擇器中

使用css變量

? 現(xiàn)在我們的 img 元素已經(jīng)使用了對應(yīng)的CSS變量,那我們是不是可以用 js 改變這些變量,來達到剛才的效果呢?

????? 答案是可以

????? 剛剛我們已經(jīng)提到過 :root 就是 html

????? 我們獲取 html 然后改變它擁有的這些變量就可以了

? 我們剛剛嘗試直接用 style 來改變 CSS 變量,但是可惜我們不能通過這種方式直接更改,我們需要使用setProperty 來設(shè)置 CSS 變量的值

? 嘗試一下可以修改


? 接下來我們按照對應(yīng)的條件來,更改 CSS變量

? 通過 setProperty 來修改對應(yīng)的屬性,通過this.name 來判斷添加的后綴是什么

? Bos 給我們了一個自定義屬性,我們可以通過這個自定義屬性短路運算來判斷應(yīng)該添加的后綴是什么

自定義屬性可以通過 dateset 獲取, 邏輯或 | | 遇到真值則返回當前值

頁面修改

? 蕪湖,我們又完成了一個項目,下面發(fā)揮自己的想象來做一些樣式修改吧,這里我給出我的樣式修改

  • 整體文字變小,防止頁面溢出

下面是全部代碼




JavaScript30之用js控制css變量的評論 (共 條)

分享到微博請遵守國家法律
普安县| 江孜县| 巢湖市| 墨脱县| 会宁县| 彩票| 东兰县| 澄迈县| 丰顺县| 汕头市| 安仁县| 临邑县| 华安县| 侯马市| 商南县| 青岛市| 新闻| 轮台县| 温州市| 清流县| 吕梁市| 肥东县| 奉贤区| 巧家县| 晋江市| 洛隆县| 曲松县| 德庆县| 西乡县| 宣武区| 山西省| 读书| 奇台县| 治多县| 定结县| 抚州市| 梅河口市| 湘西| 琼海市| 隆化县| 洮南市|