動態引用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/zh-tw/n/126908.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
S1PPJ的頭像S1PPJ
上一篇 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

發表回復

登錄後才能評論