聊聊JS控制css样式的几种方法

JavaScript018

聊聊JS控制css样式的几种方法,第1张

JS控制css样式的几种方式

我们在js的工作学习中总会遇到一些不轻易通过style属性动态加载css样式的情况(eg:伪类的样式控制,动画的样式控制),这里总结一下js改变样式的几种方法:

1,通过style属性或者setAttribute()来更改样式

2,如果只是改变伪类(after,before)的content内容也可以这么做

3,通过更改类名来更改样式

4,那么重点来了:利用document.styleSheets我们获取到所有样式表,然后选择一个样式表通过 insertRule 来添加样式;也可以创建新的cssRules,通过addRule()来添加样式

5,动态加载样式表

如果需要更改的样式比较多,还是建议通过动态加载样式的方式来改变页面样式

本文来自PHP中文网,原文地址: https://www.php.cn/website-design-ask-479590.html  推荐视频教程:《 js基础教程 》

动态加载外部css样式及css样式,参考代码如下:

// 动态加载外部js文件

var flag = true

if( flag ){

loadScript( "js/index.js" )

}

function loadScript( url ){

var script = document.createElement( "script" )

script.type = "type/javascipt"

script.src = url

document.getElementsByTagName( "head" )[0].appendChild( script )

}

// 动态加载js

if( flag ){

var script = document.createElement( "script" )

script.type = "text/javascript"

script.text = " "

document.getElementsByTagName( "head" )[0].appendChild( script )

}

// 动态加载外部css样式

if( flag ){

loadCss( "css/base.css" )

}

function loadCss( url ){

var link = document.createElement( "link" )

link.type = "text/css"

link.rel = "stylesheet"

link.href = url

document.getElementsByTagName( "head" )[0].appendChild( link )

}

// 动态加载css样式

if( flag ){

var style = document.createElement( "style" )

style.type = "text/css"

document.getElementsByTagName( "head" )[0].appendChild( style )

var sheet = document.styleSheets[0]

insertRules( sheet,"#gaga1","background:#f00",0 )

}

function insertRules( sheet,selectorTxt,cssTxt,position ){

if( sheet.insertRule ){ // 判断非IE浏览器

sheet.insertRule( selectorTxt + "{" + cssTxt +"}" ,position )

}else if( sheet.addRule ){ //判断是否是IE浏览器

sheet.addRule( selectorTxt ,cssTxt ,position )

}

}

本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法。分享给大家供大家参考。具体实现方法如下:

/**

*

动态导入静态资源文件js/css

*/

var

$import

=

function(){

return

function(rId,

res,

callback){

if(res

&&

'string'

==

typeof

res){

if(rId){

if($($('#'

+

rId),

$('head')).length>0){

return

}

}

//加载资源文件

var

sType

=

res.substring(res.lastIndexOf('.')

+

1)

//

支持js/css

if(sType

&&

('js'

==

sType

||

'css'

==

sType)){

var

isScript

=

(sType

==

'js')

var

tag

=

isScript

?

'script'

:

'link'

var

head

=

document.getElementsByTagName('head')[0]

//

创建节点

var

linkScript

=

document.createElement(tag)

linkScript.type

=

isScript

?

'text/javascript'

:

'text/css'

linkScript.charset

=

'UTF-8'

if(!isScript){

linkScript.rel

=

'stylesheet'

}

isScript

?

linkScript.src

=

res

:

linkScript.href

=

res

if(callback

&&

'function'

==

typeof

callback){

if

(linkScript.addEventListener){

linkScript.addEventListener('load',

function(){

callback.call()

},

false)

}

else

if

(linkScript.attachEvent)

{

linkScript.attachEvent('onreadystatechange',

function(){

var

target

=

window.event.srcElement

if

(target.readyState

==

'complete')

{

callback.call()

}

})

}

}

head.appendChild(linkScript)

}

}

}

}()

希望本文所述对大家的javascript程序设计有所帮助。