TP Notes
全部
CSS
SVG
資源收集
HTML
其它
關於我
Translate
2020年6月26日 星期五
即時操作 css
雖然可以用新的 css 取代舊的,這裡還是研究一下即時操作現有 css 的方式 document.styleSheets 可以取得目前網頁中所有的 css 資料, 回傳的陣列就是一個 `` 的區域 ``` document.styleSheets[n].cssRules ``` 就是該區域中的每一個設定的陣列, ``` document.styleSheets[n].cssRules[m].cssText ``` 就是這個 css 完整字串, 只是這個字串是唯讀的, 必須用 ``` document.styleSheets[n].deleteRule(m) ``` 來刪除這整個設定
**(什麼爛設計)**
, 以及用 ``` document.styleSheets[n].insertRule("css字串",索引) ``` 來新增, 索引預設是 0 ,也就是新增後會在最前面,如果沒有把本來的刪掉,新增的效果不會顯示, 然後索引也不能比本來的 Rules 多很多,只能剛好接在後面 然後比較特別的是動畫的 keyframes 如果下面這個是 keyframes ``` document.styleSheets[n].cssRules[k] ``` 那麼 ``` document.styleSheets[n].cssRules[k].name //這個 keyframes 的名稱 document.styleSheets[n].cssRules[k].cssRules[kn] //這個 keyframes 裡頭的每個 n% 的設定 document.styleSheets[n].cssRules[k].cssRules[kn].keyText //就是 % 的名稱 document.styleSheets[n].cssRules[k].cssRules[kn].cssText //完整的 css 內容 ``` 可以用 ``` document.styleSheets[n].cssRules[k].findRule("100%") //搜尋 document.styleSheets[n].cssRules[k].deleteRule("100%") //刪除 document.styleSheets[n].cssRules[k].appendRule("100%{left:100px}") //新增 ``` 在 firefox 和 chrome 即時改變 css 的值,會立刻反應,但是在 safari/iphone/ipad 只要遇到動畫,都會延遲以及不正常反應 寫到最後,覺得還是用新的 css 蓋掉舊的 css 比較好
``` $mmcode(r1) ```
Blue
Red
Add Key
Del Key
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言