• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryで指定するCSSの値を出来るだけ短縮)

jQueryでCSSの値を短縮

このQ&Aのポイント
  • jQueryを使用してCSSの値を短縮する方法を教えてください。
  • jQueryコードを最適化してCSSの値を短くする方法を教えてください。
  • for/while文を使用してCSSの値を短縮する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

ほとんど同じなのと、ループ内で同じ計算をしてしまっていますが・・・ var icoPos = ($(window).width() / 4); for(var i=0; i<16; i++){  var selector = "li.icon" + (i<9?"0"+(i+1):i+1);  var position = (-icoPos * (i%4)) + "px ";    position += (icoPos * (i/4|0)) + "px";  $(selector).css("background-position", position); } ところで、background-positionの指定ってこれでいいんでしたっけ? (キャメルケースだったかも…)

ongaq
質問者

お礼

position += (-icoPos * (i/4|0)) + "px"; で完璧でした!ちょっと紐解かないと理解できない箇所もあるので(i%4とか…)、勉強させてもらいます。ありがとうございます。 >ところで、background-positionの指定ってこれでいいんでしたっけ? クォーテーションを付与しない場合は、キャメルケースですね。

その他の回答 (1)

回答No.1

なにやら複雑ですねぇ 可読性無視で単純にループ化するとこんな感じかなぁ var icoPos = ($(window).width() / 4); var pos01 = '-'+icoPos+'px'; var pos02 = '-'+(icoPos*2)+'px'; var pos03 = '-'+(icoPos*3)+'px'; var basePos = [ '0', pos01, pos02, pos03 ]; for ( var i = 0; i < 16; i+=4 ) { $('li.icon0' + (i + 1)).css('background-position', '0 ' + basePos[i%4]); $('li.icon0' + (i + 2)).css('background-position', pos01+' ' + basePos[i%4]); $('li.icon0' + (i + 3)).css('background-position', pos02+' ' + basePos[i%4]); $('li.icon0' + (i + 4)).css('background-position', pos03+' ' + basePos[i%4]); }

ongaq
質問者

お礼

回答ありがとうございます! この状態だとicon01~icon09までしかbackground-positionが付与されないため、改修が必要でした。for(i++)ばかり使ってるので、for(i+=4)とかはちょっとパッと出てこなかったです…勉強になります。ありがとうございます。 ちなみに関係ないどうでもいい情報ですが、俺も12/6生まれですのでなんとなく嬉しかったです。

関連するQ&A