关于使用js动态修改样式问题,js动态改变字体颜色

发布时间:2022-11-23

本文目录一览:

1、[JS 动态修改CSS 样式方法/全局](#JS 动态修改CSS 样式方法/全局)
2、JS或Jquery动态改变导航栏样式
3、如何实现JS动态修改css全局样式
4、[js动态修改bootstrap的css样式,无效 ?](#js动态修改bootstrap的css样式,无效 ?)
5、关于js中利用DOM动态改变CSS样式,请大神提供代码

JS 动态修改CSS 样式方法/全局

如何配置自行百度

  1. scss文件定义变量
  2. 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);

需要删除的时候还有 deleteRuleremoveRule 两个方法。

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>

望采纳!