本文目录一览:
1、[JS 动态修改CSS 样式方法/全局](#JS 动态修改CSS 样式方法/全局)
2、JS或Jquery动态改变导航栏样式
3、如何实现JS动态修改css全局样式
4、[js动态修改bootstrap的css样式,无效 ?](#js动态修改bootstrap的css样式,无效 ?)
5、关于js中利用DOM动态改变CSS样式,请大神提供代码
JS 动态修改CSS 样式方法/全局
如何配置自行百度
- scss文件定义变量
- js中更改
$textColor
变量的值
都是获取DOM:
- 通过DOM分别修改当前DOM样式属性值
- 当前DOM整体css样式
- 修改当前DOM的className类名
- 将link引入的标签作为DOM 修改link的href,从而修改引用的样式表
详情转自:
JS或Jquery动态改变导航栏样式
简单的插件代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>动态导航插件</title>
<style type="text/css">
body, td, th {
font-size: 14px;
background-color:#FFF
}
h1{border-bottom:1px solid #999; margin:50px 60px;}
/*导航默认样式,可根据实际情况修改*/
* {
margin:0;
padding:0
}
.nav {
width:980px;
height:30px;
left:50%;
margin-left:-490px;
list-style:none;
position:relative;
}
.nav li {
display:inline-block;
margin:0 3px;
position:relative;
overflow:hidden;
height:30px; /*建议此高度大于等于里面的a标签高度*/
float:left;
}
.nav li span {
display:inline-block;
overflow:hidden
}
.nav li a {
text-decoration:none;
outline:none;
color:#666;
display:inline-block;
padding:0 10px;
text-align:center;
background-color: #E1E1E1;
font-weight:bold;
height:30px;
line-height:30px;
}
/*鼠标经过时样式*/
.nav li a.over {
background-color:#666;
color:#FFF
}
</style>
<script type="text/javascript" src=""></script>
<script type="text/javascript">
(function($){
$.fn.dynamicNav=function(options){
//默认配置
var defaults = {
direction:"up", //动画切换方向,总共4种up 、down 、left 、right
duration:100 //三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)
};
// 覆盖默认配置
var opts = $.extend(defaults, options);
this.each(function(){
var navList=$(this).find("li"),
navLink=navList.find("a");
//在a标签外侧插入span
navList.wrapInner("<span></span>");
var span=navLink.parent();
//判断是否垂直切换
if(opts.direction=="up" || opts.direction=="down"){
var v=true;
}
//判断是否改变span初始位置及a样式
if(opts.direction=="right" || opts.direction=="down"){
var restSpan=true;
}
navLink.each(function(){
//获取a高度和宽度
var w=$(this).outerWidth(),
p=$(this).parent();
//初始复制现有a标签
$(this).clone().appendTo(p).addClass("over");
//如果是垂直切换
if(v){
p.css("width",w);
}else{
p.css("width",2*w).parent().css("width",w);
}
});
//如果向右或向下切换,改变span初始位置及a样式
if(restSpan){
span.each(function(){
if(opts.direction=="right"){
$(this).css({"margin-left":-$(this).outerWidth()/2});
}
if(opts.direction=="down"){
$(this).css({"margin-top" : -$(this).outerHeight()/2});
}
$(this)
.find('a')
.last()
.removeClass("over")
.prev()
.addClass("over");
});
}
//鼠标经过时动画函数
function over(o){
o.animate(v?{"margin-top": -o.outerHeight()/2}:{"margin-left": -o.outerWidth()/2}, opts.duration);
}
//鼠标移开时动画函数
function out(o){
o.animate(v?{"margin-top":0}:{"margin-left": 0}, opts.duration);
}
//鼠标经过和离开
span.hover(function(){
restSpan ? out($(this)) : over($(this));
},function(){
restSpan ? over($(this)) : out($(this));
});
});
};
})(jQuery);
$(function(){
//向左
$("#nav1").dynamicNav({
direction:"left", //动画切换方向,总共4种up 、down 、left 、right
duration:300 //三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)
});
//向右
$("#nav2").dynamicNav({
direction:"right",
duration:200
});
//向上
$("#nav3").dynamicNav({
direction:"up",
duration:100
});
//向下
$("#nav4").dynamicNav({
direction:"down",
duration:400
});
});
</script>
</head>
<body>
<h1>向左(速度300毫秒)</h1>
<ul class="nav" id="nav1">
<li><a href="">首页</a></li>
<li><a href="">前端技术</a></li>
<li><a href="">视觉设计</a></li>
<li><a href="">文章归档</a></li>
<li><a href="">工具/书籍</a></li>
<li><a href="">关于我</a></li>
</ul>
<h1>向右(速度200毫秒)</h1>
<ul class="nav" id="nav2">
<li><a href="">首页</a></li>
<li><a href="">前端技术</a></li>
<li><a href="">视觉设计</a></li>
<li><a href="">文章归档</a></li>
<li><a href="">工具/书籍</a></li>
<li><a href="">关于我</a></li>
</ul>
<h1>向上(速度100毫秒)</h1>
<ul class="nav" id="nav3">
<li><a href="">首页</a></li>
<li><a href="">前端技术</a></li>
<li><a href="">视觉设计</a></li>
<li><a href="">文章归档</a></li>
<li><a href="">工具/书籍</a></li>
<li><a href="">关于我</a></li>
</ul>
<h1>向下(速度400毫秒)</h1>
<ul class="nav" id="nav4">
<li><a href="">首页</a></li>
<li><a href="">前端技术</a></li>
<li><a href="">视觉设计</a></li>
<li><a href="">文章归档</a></li>
<li><a href="">工具/书籍</a></li>
<li><a href="">关于我</a></li>
</ul>
</body>
</html>
如何实现JS动态修改css全局样式
用css样式相关的接口 stylesheet.insertRule
或者 stylesheet.addRule
这两个都可以动态插入css样式,兼容性还可以(ie9+)
例如:
myStyle.insertRule("#blanc { color: white }", 0);
需要删除的时候还有 deleteRule
和 removeRule
两个方法。
js动态修改bootstrap的css样式,无效 ?
你js动态修改是成功了的;点击是增加了bg-color类的。但是:
- bootstrap里的导航点击颜色是
.nav li a:focus, .nav li a:hover {}
- 你写的是加在上级li上面的。li下面的a点击是有颜色所以覆盖掉了。 解决方法1:
- 把
.nav li a:focus, .nav li a:hover { background-color:none }
去掉默认点击设置的颜色。 - 或者直接修改
.nav li a:focus, .nav li a:hover { background-color:这里设置颜色 }
,不需要点击增加类。 - 把点击增加类的时间添加到a上面;然后设置
.nav li a.bg-color:hover {}
关于js中利用DOM动态改变CSS样式,请大神提供代码
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<script src=""></script>
<style>
*{
/*margin: 0px;
padding: 0px;*/
}
.test1{
width: 100%;
height: 22px;
line-height: 22px;
border: 2px solid #ccc;
}
</style>
</head>
<body>
<div class="test1">公告内容</div>
<br />
<button class="changestyle">更改样式</button>
<script>
$(function(){
$(".changestyle").off("click").on("click",function(){
$(".test1").css({
"font-size":"16px",
"font-weight":"bold",
"border":"2px solid blue",
"width":"200px",
"height":"100px",
"text-align":"center",
"line-height":"100px",
"color":"red"
});
});
});
</script>
</body>
</html>
望采纳!