摘要:設(shè)置的幾種方法及注意事項(xiàng)設(shè)置樣式直設(shè)置內(nèi)聯(lián)屬性設(shè)置內(nèi)聯(lián)樣式替換內(nèi)聯(lián)追加設(shè)置內(nèi)聯(lián)樣式第三個(gè)參數(shù)可以省略以上中方法都是基于內(nèi)聯(lián)樣式,用他們來(lái)獲取元素的樣式是同樣只能獲取到內(nèi)聯(lián)樣式。
JavaScript設(shè)置CSS的幾種方法及注意事項(xiàng) JS設(shè)置CSS樣式
直設(shè)置內(nèi)聯(lián)style屬性
el.style.color = "red"; el.style["font-size"] = "16px"; el.style.fontSize = "16px";
cssText設(shè)置內(nèi)聯(lián)樣式
el.style.cssText = "color: red"; //替換內(nèi)聯(lián)css el.style.cssText += "color: red" //追加
setProperty設(shè)置內(nèi)聯(lián)樣式
el.style.setProperty("color", "red", "!important"); //第三個(gè)參數(shù)可 以省略
以上3中方法都是基于內(nèi)聯(lián)樣式,用他們來(lái)獲取Dom元素的樣式是同樣只能獲取到內(nèi)聯(lián)樣式。
addRule、insertRule
二者區(qū)別 ,addRule:在原有css規(guī)則中加入樣式; insertRule:
document.styleSheets[0].addRule(".class", "color: red"); document.styleSheets[0].insertRule(".class{color: red}", 0); //參數(shù):rules,index(cssRules 數(shù)組中的位置)注意事項(xiàng)
先看下面這段代碼:預(yù)期執(zhí)行結(jié)果是第三行不有出現(xiàn)過(guò)度效果,但實(shí)際還是上出現(xiàn)了過(guò)度效果
let con = document.getElementsByClassName("container")[0]; con.style.transitionDuration = "0s"; con.style.transform = "translateX(0)"; con.style.transitionDuration = ".2s";
這是來(lái)自輪播圖功能中的代碼段,目的是為了從最后一張圖跳到第一張圖時(shí)不顯示過(guò)渡動(dòng)畫(huà)。 為了找到是什么原因接下來(lái)打上debuger看看調(diào)試的情況:
function prev(offsetWidth) { if(con.style.transform == maxWidth){ // 開(kāi)始 debugger; con.style.transitionDuration = "0s"; // 運(yùn)行到此處:樣式transition-during沒(méi)有被渲染到DOM上 con.style.transform = "translateX(0)"; // 運(yùn)行到此處:樣式transition-during、translateX都沒(méi)有被渲染到DOM上 initWidth = -600; offsetWidth = initWidth; con.style.transitionDuration = ".2s"; // 運(yùn)行到此處:樣式transition-during、translateX都沒(méi)有被渲染到DOM上 } setTimeout(function () { // 運(yùn)行到此處:樣式transition-during、translateX都沒(méi)有被渲染到DOM上,且transition-during:.2s con.style.transform = "translateX("+offsetWidth+"px)"; },2); }
原來(lái)瀏覽器為了優(yōu)化會(huì)將css操作當(dāng)一起執(zhí)行相同的元素上屬性的樣式會(huì)被覆蓋,也就是上面這個(gè)例子中con.style.transitionDuration = "0s";這句被覆蓋了,但是如果你在這句之后將加上一句console.log(con.style.transitionDuration)是可以獲取到0s的,所以只是瀏覽器沒(méi)有渲染出來(lái)而已,并不是沒(méi)有執(zhí)行。 為了處理這個(gè)現(xiàn)象可以給這句加上延遲 setTimeout(function () { con.style.transitionDuration = ".2s"; },1)完整例子代碼:
Title 512345
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/115827.html
摘要:設(shè)置的幾種方法及注意事項(xiàng)設(shè)置樣式直設(shè)置內(nèi)聯(lián)屬性設(shè)置內(nèi)聯(lián)樣式替換內(nèi)聯(lián)追加設(shè)置內(nèi)聯(lián)樣式第三個(gè)參數(shù)可以省略以上中方法都是基于內(nèi)聯(lián)樣式,用他們來(lái)獲取元素的樣式是同樣只能獲取到內(nèi)聯(lián)樣式。 JavaScript設(shè)置CSS的幾種方法及注意事項(xiàng) JS設(shè)置CSS樣式 直設(shè)置內(nèi)聯(lián)style屬性 el.style.color = red; el.style[font-size] = 16px; el.s...
摘要:具有相同的父元素,并匹配過(guò)濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素。可見(jiàn)元素的寬度或高度,是大于零。元素的或被認(rèn)為是可見(jiàn)的,因?yàn)樗麄內(nèi)匀徽加每臻g布局。 jQuery對(duì)象轉(zhuǎn)化成DOM對(duì)象 ? ? jQuery庫(kù)本質(zhì)上還是JavaScript代碼,它只是對(duì)JavaScript語(yǔ)言進(jìn)行包裝處理,為了是提供更好更方便快捷的DOM處理與開(kāi)發(fā)常見(jiàn)中經(jīng)常使用的功能。我們可以用jQuery...
摘要:具有相同的父元素,并匹配過(guò)濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素。可見(jiàn)元素的寬度或高度,是大于零。元素的或被認(rèn)為是可見(jiàn)的,因?yàn)樗麄內(nèi)匀徽加每臻g布局。 jQuery對(duì)象轉(zhuǎn)化成DOM對(duì)象 ? ? jQuery庫(kù)本質(zhì)上還是JavaScript代碼,它只是對(duì)JavaScript語(yǔ)言進(jìn)行包裝處理,為了是提供更好更方便快捷的DOM處理與開(kāi)發(fā)常見(jiàn)中經(jīng)常使用的功能。我們可以用jQuery...
摘要:不推薦移動(dòng)端瀏覽器前端優(yōu)化策略相對(duì)于桌面端瀏覽器,移動(dòng)端瀏覽器上有一些較為明顯的特點(diǎn)設(shè)備屏幕較小新特性兼容性較好支持一些較新的和特性需要與應(yīng)用交互等。 GitHub鏈接:https://github.com/zwwill/blo... 圍繞前端的性能多如牛毛,涉及到方方面面,以我我們將圍繞PC瀏覽器和移動(dòng)端瀏覽器的優(yōu)化策略進(jìn)行羅列注意,是羅列不是展開(kāi),遇到不會(huì)不懂的點(diǎn)還請(qǐng)站外擴(kuò)展 開(kāi)車(chē)...
摘要:不推薦移動(dòng)端瀏覽器前端優(yōu)化策略相對(duì)于桌面端瀏覽器,移動(dòng)端瀏覽器上有一些較為明顯的特點(diǎn)設(shè)備屏幕較小新特性兼容性較好支持一些較新的和特性需要與應(yīng)用交互等。 GitHub鏈接:https://github.com/zwwill/blo... 圍繞前端的性能多如牛毛,涉及到方方面面,以我我們將圍繞PC瀏覽器和移動(dòng)端瀏覽器的優(yōu)化策略進(jìn)行羅列注意,是羅列不是展開(kāi),遇到不會(huì)不懂的點(diǎn)還請(qǐng)站外擴(kuò)展 開(kāi)車(chē)...
閱讀 1503·2021-11-22 09:34
閱讀 3320·2021-09-29 09:35
閱讀 562·2021-09-04 16:40
閱讀 2912·2019-08-30 15:53
閱讀 2582·2019-08-30 15:44
閱讀 2584·2019-08-30 14:10
閱讀 1328·2019-08-29 18:43
閱讀 2205·2019-08-29 13:26