GithubHelp home page GithubHelp logo

webcyou / fixed-table-js Goto Github PK

View Code? Open in Web Editor NEW
25.0 7.0 6.0 189 KB

Fixed Table Layout JavaScript Library

JavaScript 33.00% TypeScript 67.00%
table-javascript mocha typescript fixed table html html-table html-tables scroll layouts

fixed-table-js's Introduction

Fixed Table JS

FixedTableJS - Fixed Table Layout JavaScript Library

GitHub version npm version

これは何?

tableレイアウトで、タイトル項目のカラムを簡単に固定表示を行える、JavaScriptライブラリです。

demo

デモページ

Support Browsers

Mac

52.0.2743.82 ~ 47.0.1 ~ 9.1.2 ~ 39.0 ~

Windows

52.0.2743.116 m ~ 48.0.1 ~ 11 25.10586.0.0 39.0 ~

Quick start

Clone the repo:

git clone [email protected]:webcyou/fixed-table-js.git

Install with Bower:

bower install fixed-table.js

Install with npm:

npm install fixed-table-js

Basic Usage

<script src="fixed_table.js"></script>

it's a standard table layout.

HTML

<div id="fixedTable">
    <table>
        <thead>....</thead>
        <tbody>
            <tr>
                <th>...</th> or <td>...</td>
                ....
            </tr>
        </tbody>
    </table>
</div>

<thead></thead>と、<tbody><tr></tr></tbody>の最初の子要素が固定されます。

Singleton Object

new FixedTable();

argument

new FixedTable(option);

Table Box Full Mode

new FixedTable({ fullMode: true; });

Option Parameters Reference

ParametersName type DefaultValue Details
id string 'fixedTable' CSS ID Name
fullMode boolean false window full size
click boolean false click event callBack Function

Public Function

Function Name Argument Argument Type Details
changeMode true, false boolean テーブル表示モード切り替え
setCellStyle cell style data object cellのstyleを切り替え
click callback Function click event callBack Function

CallBack Function

fixedTable.click(function(cell: Cell) {
  ...
});

CallBack Parameters Reference

Cell example

Cell {
  id: 14,
  x: 2,
  y: 0,
  width: 228,
  height: 40,
  outerHeight: 57,
  outerWidth: 245,
  borderBottomWidth: "0px",
  borderLeftWidth: "1px",
  borderRightWidth: "0px",
  borderTopWidth: "1px",
  paddingBottom: "8px",
  paddingLeft: "8px",
  paddingRight: "8px",
  paddingTop: "8px",
  parent: "tbody",
  tHeadCell: Cell,
  tagName: "TD",
  isFixed: false,
  boxSizing: "content-box"
}
Parameters Name Type Details
id number cell ID Number
x number x-coordinate
y number y-coordinate
width number contents inner width
height number contents inner height
outerWidth number contents inner outerWidth
outerHeight number contents inner outerHeight
borderTopWidth string contents border top width
borderRightWidth string contents border right width
borderBottomWidth string contents border bottom width
borderLeftWidth string contents border left width
paddingTop string contents padding top
paddingRight string contents padding right
paddingBottom string contents padding bottom
paddingLeft string contents padding left
parent string contents parent node(tbody or thead)
tHeadCell Cell contents thead cell node
tagName string self tagName
isFixed boolean self fixed style
boxSizing string boxSizing style

Start develop

npm install
gulp 
Server started http://localhost:8088
LiveReload started on port 35729

Start Test

mocha

npm run test

mocha watch

npm run test:watch

Author

Daisuke Takayama Web帳

License

Copyright (c) 2016 Daisuke Takayama Released under the MIT license

fixed-table-js's People

Contributors

panicdragon avatar takayama-daisuke avatar webcyou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fixed-table-js's Issues

box-sizing 適応時にズレが生じる

box-sizing 適応時にズレが生じる

・box-sizing 適応時にズレが生じるので、追って対応

現状はCSSの方でbox-sizing: content-box;で回避する。

Changing browser zoom level affects horizontal alignment of th to tds

Hi,

Thanks for creating this really useful library.

I noticed an issue with alignment when the page zoom level is changed.

At 100% zoom level:
At 100% zoom level

At 110% zoom level:
At 110% zoom level

I suspect it is because of fractional adding up of border-width and padding, but can't be sure.
Vertical alignment of rows is not affected. The effect is larger with a large number of columns (as in the screenshot), but is observable with the demo here:
https://www.cssscript.com/demo/fix-table-header-column/

Thanks, again, for creating this library.

Regards,
Manjit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.