Skip to content

Dynamically find CSS Selector into style sheets and manipulate elements selector's styles without touching the DOM

Notifications You must be signed in to change notification settings

felquis/CSSOM-Query

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSSOM-Query

Dynamically find CSS Selector into style sheets and manipulate selector's styles without touching the DOM

Examples

clone this repository and run the commands bellow to launch the examples

npm install

npm start

Explanation

Imagene you only have this in your style sheet, in the file /example/demo.css

h1 {
  color: red;
}

.box {
  height: 100px
}

And this is the only one style sheet linked into your HTML checkout /example.index.html#L07

Once elements is renderized with this styles, you can manipulate then by doing

document.styleSheets[0].cssRules[1].style.height = '200px'

What this function helps me, is to find out the styleSheets[0] index and cssRules[1].

So I can focus only on the rule I want to manipulate

Basic Usage

// It does not select elements into the DOM
var box = new CSSOMQuery('.box')

Change a property's value

box.set({
  height: '200px'
})

Get a property value

box.style.height // returns 200px

Set property value with a function

box.set({
  height: function (currentValue) {
    console.log('height current value ', currentValue)
    return '200px'
  }
})

TODO: Would be great the currentValue to be a parsed object, it currently return strings

Transition end event

It will use vendor prefixes automatically

box.on('transitionend', showMessage)

function showMessage(e) {
  console.log('transition end: ', e.propertyName)
}

To know more, search for CSS Object Model

Browser Support

Basic Demo was tested on:

  • iPod/Ipad Touch Safari iOS 9.0.2
  • Moto X 2013 Chrome 43
  • Firefox 41.0.1 OSX
  • Safari Version 9.0 (10601.1.56.2) OSX
  • Chrome Version 46.0.2490.71 (64-bit) OSX
  • Internet Explorer 10 - Windows 8 Virtual Box

About

Dynamically find CSS Selector into style sheets and manipulate elements selector's styles without touching the DOM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published