jQuery给元素添加样式的方法详解

jQuery给元素添加样式的方法详解,第1张

本文实例讲述了jQuery给元素添加样式的方法。分享给大家供大家参考,具体如下:

1、获取和设置样式

$("#tow").attr("class")//获取ID为tow的class属性

$("#two").attr("class","divClass")//设置Id为two的class属性。

2、追加样式

复制代码

代码如下:$("#two").addClass("divClass2")//为ID为two的对象追加样式divClass2

3、移除样式

$("#two").removeClass("divClass")//移除

ID为two的对象的class名为divClass的样式。

$(#two).removeClass("divClass

divClass2")//移除多个样式。

4、切换类名

复制代码

代码如下:$("#two").toggleClass("anotherClass")

//重复切换anotherClass样式

5、判断是否含有某项样式

复制代码

代码如下:$("#two").hasClass("another")==$("#two").is(".another")

6、获取css样式中的样式

复制代码

代码如下:$("div").css("color")//设置color属性值.

$(element).css(style)

设置单个样式

复制代码

代码如下:$("div").css("color","red")

设置多个样式

$("div").css({fontSize:"30px",color:"red"})

$("div").css("height","30px")==$("div").height("30px")

$("div").css("width","30px")==$("div").height("30px")

7.offset()方法

它的作用是获取元素在当前视窗的相对偏移,其中返回对象包含两个属性,即top和left

注意:只对可见元素有效。

var

offset=$("div").offset()

var

left=offset.left

//获取左偏移

var

top=offset.top

//获取右偏移

8、position()方法

它的作用是获取元素相对于最近的一个position样式属性设置为relative或者absolute的祖父节点的相对偏移,与offset()一样,它返回的对象也包括两个属性即top和left。

9、scrollTop()方法和scrollLeft()方法

$("div").scrollTop()

//获取元素的滚动条距顶端的距离。

$("div").scrollLeft()

//获取元素的滚动条距左侧的距离。

10、jQuery中的

toggle和slideToggle

方法,都可以实现对一个元素的显示和隐藏。区别是:

toggle:动态效果为从右至左。横向动作。

slideToggle:动态效果从下至上。竖向动作。

比如想实现一个树由下至上收缩的动态效果,就使用slideToggle就ok了。

$('input').attr("readonly",true)//将input元素设置为readonly

$('input').attr("readonly",false)//去除input元素的readonly属性

$('input').attr("disabled",true)//将input元素设置为disabled

$('input').attr("disabled",false)//去除input元素的disabled属性

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

添加CSS的方式有行内式、嵌入式、外链式、导入式

a)动态引入样式表文件:

function loadLink(url){

var link = document.createElement("link")

link.type = "text/css"

link.rel = "stylesheet"

link.href = url

var head = document.getElmentsByTagName("head")[0]

head.appendChild(link)

}

b)嵌入式:

function insertStyles(){

var doc,cssCode=[],cssText

var len = arguments.length

var head,style,firstStyle

if(len == 1){

doc = document

cssCode.push(arguments[0])

}else if(len == 2){

doc = arguments[0]

cssCode.push(arguments[1])

}else{

alert("函数最多接收两个参数!")

}

head = doc.getElementsByTagName("head")[0]

styles= head.getElementsByTagName("style")

if(styles.length == 0){

if(doc.createStyleSheet){//ie

doc.createStyleSheet()

}else{//FF

var tempStyle = doc.createElement("style")

tempStyle.setAttibute("type","text/css")

head.appendChild(tempStyle)

}

}

firstStyle = styles[0]

cssText=cssCode.join("\n")

if(!+"\v1"){//opacity兼容

var str = cssText.match(/opacity:(\d?\.\d+)/)

if(str!=null){

cssText = cssText.replace(str[0],"filter:alpha(opacity="+pareFloat(str[1])*100+")")

}

}

if(firstStyle.styleSheet){

firstStyle.styleSheee.cssText += cssText

}else if(doc.getBoxObjectFor){

firstStyle.innerHTML += cssText

}else{

firstStyle.appendChild(doc.createTextNode(cssText))

}

}

c)行内式:

var addStyle=function (ele,str){

var s = ele.getAttribute("style"),styles

if(str &&typeof str === "string"){

if(!s){

ele.style.cssText = str

}else{

if(s == '[object]'){//IE6/7 e.getAttribute("style")返回[object]

s=ele.style.cssText

}

styles= trim(s).split("")

for (var i=0,len=styles.lengthi<leni++){

var style_i=trim(styles[i])

var attr=style_i.split(":")[0]

if(str.indexOf(attr)>-1){

styles[i]=""

}else{

styles[i]=style_i

}

}

ele.style.cssText= styles.join("")+""+str

}

}

}

d)导入式:

import "index.css"

*** 作CSS 类相关的方法:

var hasClass=function(ele,value){

var rclass = /[\n\t\r]/g,

value=" "+value+" "

return (ele.nodeType==1)&&(" "+ele.className+" ").replace(rclass," ").indexOf(value)>-1

}

var trim=function (val){

return val.replace(/(^\s+)|(\s+$)/g,"")

}

var addClass=function(ele,value){

var rspace = /\s+/,classNames,getClass

if(value&&typeof value === "string"){

classNames = value.split(rspace)

if(ele.nodeType === 1){

if(!ele.className &&classNames.length == 1){

ele.className = value

}else{

getClass = " "+ele.className+" "

for(var i=0,len=classNames.lengthi<len i++){

var cname=classNames[i]

if(!hasClass(ele,cname)){

getClass += cname+" "

}

}

ele.className = trim(getClass)

}

}

}

}

var removeClass=function(ele,value){

var rclass = /[\n\t\r]/g,classNames,getClass

if((value&&typeof value === "string")||value === undefined){

classNames = (value||"").split(rspace)

if(ele.nodeType === 1 &&ele.className){

if(value){//存在查找要移除的类

getClass = " "+ele.className+" ".replace(rclass," ")//左右空格,为了使类中各类间均等,方便后面替换

for(var i=0,len=classNames.lengthi<leni++){

getClass = getClass.replace(" "+classNames[i]+" "," ")

}

ele.className=trim(getClass)

}else{//不存在移除所有类

ele.className = ""

}

}

}

}

var toggleClass=function(ele,value){

if(typeof value === "string"){

if(hasClass(ele,value)){

removeClass(ele,value)

}else{

addClass(ele,value)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11873485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存