3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

YiiAdvent Calendar 2015

Day 8

いい感じでレスポンシブにボタンが増減するLinkPagerウィジェット

Last updated at Posted at 2015-12-08

いくら Bootstrap でレスポンシブだといっても、なにも考えてないと ListView でページャーがこう

page13.png

なって、幅が足りないとこう

page13-bad.png

なりますよね。プギャーって。

これを、HTML出力を分岐しないで同じのを表示したままボタン数調整したい。こうです

page5.png

はい、できるウィジェットを作りました。

標準LinkPagerにCSSクラスをばらまくだけです。

実装に無駄なコードが多いのは元の設計のせいですね。(Gistをインラインで表示したい)

適用すると DOM がこうなります。

dom1.png

設定によっては...

'pager' => [
    'class' => ResponsiveLinkPager::className(),
    'maxButtonCount' => 13,
    'pageCssClassButtonCountMap' => [
        'hidden-md' => 11,
        'hidden-sm' => 9,
        'hidden-xs' => 5,
    ],
],

dom2.png

かなり器用にレスポンシブな感じ。うまい具合に active が当たってるボタンを中心にして、トータルボタン数が指定通りの数になってますね。

短いアルゴリズムでおいしい結果が得られました。Yii 以外でも Bootstrap 使ってるなら、こいつと同じように表示コントロールしたらいいんじゃないですかね。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?