Skip to content

jQuery CSS 樣式:css() 與 scrollTop()

jQuery CSS 樣式屬性:css 與 scrollTop

讀取與設定元素的 CSS 相關樣式,屬於 jQuery DOM 操作 的一環。

css()

讀取

取得指定元素的 CSS 樣式。讀到的是元素當下實際套用的計算值,因此就算樣式寫在外部 CSS 檔裡也讀得到。

js
css(property);

參數

功能說明型別範例備註
property屬性String'color'必填

範例

html
<div id="Dom" style="display: inline">DOM</div>
js
const val = $('#Dom').css('display');

// inline
console.log(val);

設定一個 CSS 樣式

設定元素的 CSS 行內樣式。

js
css(property, value);

參數

功能說明型別範例備註
property屬性String'color'必填
valueString'#fff'必填

範例

html
<div id="Dom">DOM</div>
js
$('#Dom').css('color', '#fff');

設定多個 CSS 樣式

一次設定元素的多個 CSS 行內樣式。屬性名以駝峰式書寫,若要保留連字號的寫法,就得用引號包起來。

js
css(properties);

參數

功能說明型別範例備註
properties屬性Object{ color: 'red' }必填

範例

html
<div id="Dom">DOM</div>
js
$('#Dom').css({
  color: '#fff',
  // 'font-size': 30,
  fontSize: '3rem',
});

固定的樣式請交給類別

一整組固定的視覺狀態,建議寫成 CSS 類別再用 addClass() 切換,樣式留在 CSS 檔 裡比較好維護。css() 適合處理必須即時計算出來的數值。

scrollTop()

讀取

取得指定元素被向上捲動的高度,常搭配 scroll 事件 使用。

js
scrollTop();

Demo

設定

設定指定元素向上捲動的高度。直接設定會瞬間跳過去,想要平滑效果可以改用 animate() 把它當成動畫屬性補間。

js
scrollTop(value);

參數

功能說明型別範例備註
valueNumber500必填

範例

js
// 回到最上方,並加上 400 毫秒的平滑效果
$('html, body').animate({ scrollTop: 0 }, 400);

常見問題

css 讀到的是行內樣式還是計算後的樣式?

讀到的是元素當下實際套用的計算值,因此就算樣式寫在 CSS 檔 裡也讀得到,而且回傳的通常是換算過的絕對值。

屬性名要寫駝峰式還是連字號?

兩種都可以。駝峰式例如:fontSize 可以直接當物件的鍵;保留連字號的寫法時,必須用引號包起來。

設定數值可以不寫單位嗎?

多數長度屬性省略單位時 jQuery 會自動補上像素,但為了語意清楚,建議還是明確寫出 單位 ,尤其是需要用相對單位的時候。

什麼時候不該用 css?

當樣式是固定的一組視覺狀態時,改用 切換類別 會更好維護,樣式仍留在 CSS 檔裡。css() 適合處理必須即時計算出來的數值。

scrollTop 可以做平滑捲動嗎?

直接設定會瞬間跳過去。想要平滑效果,可以對捲動容器使用 animate() ,把 scrollTop 當成動畫屬性補間。

延伸閱讀

參考資料:jQuery API:.css()