动态引用css和js(用css实现动态背景)

  • 1、如何实现动态导入js和css等静态资源文件
  • 2、如何动态加载外部CSS与JS文件
  • 3、如何实现JavaScript动态加载CSS和JS文件
  • 4、外部js怎么引用css?

/**

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

 */

var $import = function(){

  return function(rId, res, callback){

    if(res  ‘string’ == typeof res){

      if(rId){

        if($($(‘#’ + rId), $(‘head’)).length0){

          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);

      }

    }

  };

}();

动态加载外部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 ) 

}

代码:

var dynamicLoading = {

css: function(path){

if(!path || path.length === 0){

throw new Error(‘argument “path” is required !’);

}

var head = document.getElementsByTagName(‘head’)[0];

var link = document.createElement(‘link’);

link.href = path;

link.rel = ‘stylesheet’;

link.type = ‘text/css’;

head.appendChild(link);

},

js: function(path){

if(!path || path.length === 0){

throw new Error(‘argument “path” is required !’);

}

var head = document.getElementsByTagName(‘head’)[0];

var script = document.createElement(‘script’);

script.src = path;

script.type = ‘text/javascript’;

head.appendChild(script);

}

}

对象包含两个完全独立的方法,分别用来加载CSS 文件和JS 文件,参数均为欲加载的文件路径。原理非常的简单:对于不同的加载文件类型创建不同的节点,然后添加各自的属性,最后扔到head 标签里面。经测试,本方法兼容各浏览器,安全、无毒、环保,是 web 开发人员工作常备代码。

下面是调用代码,异常简单:

//动态加载 CSS 文件

dynamicLoading.css(“test.css”);

//动态加载 JS 文件

dynamicLoading.js(“test.js”);

你说的是用jQuery里的addClass方法吧(抱歉js原生暂时没发现该方法),那就要先引入jQuery.js,然后再引入a.js,可以这样做:

1、在c.css里写好你的样式:.cssStyle {你的样式};

2、然后在a.js里加入$(‘span’).addClass(‘cssStyle’)即可。

如果你的意思不是这个,那我猜你应该是想说怎么直接在js里操作css样式吧,那就可以这样:

var spanEl = document.querySelectorAll(‘span’);

然后根据你的要求写样式,比如你要修改背景颜色为红色:

spanEl .style.background = ‘red’;

希望我的回答能帮助到你,谢谢!

原创文章,作者:S1PPJ,如若转载,请注明出处:https://www.506064.com/n/126908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
S1PPJS1PPJ
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • QML 动态加载实践

    探讨 QML 框架下动态加载实现的方法和技巧。 一、实现动态加载的方法 QML 支持从 JavaScript 中动态指定需要加载的 QML 组件,并放置到运行时指定的位置。这种技术…

    编程 2025-04-29
  • Python换背景后,边缘降噪怎么办?

    对于这个问题,我们可以从多个方面来解决。 一、背景替换的方法 在背景替换之前,我们需要先将图像的边缘进行处理,避免在替换过程中出现锯齿状的边缘。 首先,我们可以通过腐蚀和膨胀的操作…

    编程 2025-04-29
  • Python爱心代码动态

    本文将从多个方面详细阐述Python爱心代码动态,包括实现基本原理、应用场景、代码示例等。 一、实现基本原理 Python爱心代码动态使用turtle模块实现。在绘制一个心形的基础…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • 使用easypoi创建多个动态表头

    本文将详细介绍如何使用easypoi创建多个动态表头,让表格更加灵活和具有可读性。 一、创建单个动态表头 easypoi是一个基于POI操作Excel的Java框架,支持通过注解的…

    编程 2025-04-28
  • CSS sans字体家族

    CSS sans字体家族是一组基于CSS的无衬线字体,具有在不同设备和浏览器上保持一致的特性。本文将从优势、使用、自定义等多个方面对CSS sans字体家族进行详细介绍。 一、优势…

    编程 2025-04-28
  • Python 如何填充背景颜色

    本文将从多个方面详细阐述如何使用 Python 填充背景颜色。 一、使用 tkinter 库 Python 的 tkinter 库提供了丰富的图形界面操作功能,包括填充背景颜色的功…

    编程 2025-04-28

发表回复

登录后才能评论