js實現換膚效果

2022-03-30 05:19:38 字數 1759 閱讀 8429

基本原理很簡單,就是使用 js 切換對應的 css 樣式表檔案。例如導航** hao123 的右上方就有網頁換膚功能。除了切換 css 樣式表檔案之外,通常的網頁換膚還需要通過 cookie 來記錄使用者之前更換過的**,這樣下次使用者訪問的時候,就可以自動使用上次使用者配置的選項。 那麼基本工作流程就出來了:訪問網頁——js 讀取 cookie ——如果沒有,使用預設**——如果有,使用指定**;使用者點選換膚選項——js 控制替換對應的 css 樣式表——將**選項寫進 cookie 儲存。

1,不同的**對應不同的css檔案,準備好多套css樣式檔案:

如藍色對應:skincolour_blue.css 

黃色對應:skincolour_yellow.css

例如,藍色對應:blue資料夾;黃色對應:yellow資料夾。

1,在網頁開頭引入css檔案

2,在頁面上定義2個**切換按鈕

藍色

黃色

3,在js的**,通過函式觸發切換標籤的css路徑,和的路徑,來實現換膚

//把引入**css路徑標籤選出來

var cssstyle = document.getelementbyid('skincolour');

//換膚函式

function changesyle(name) //html5設定本地儲存

function setstorage(sname, vul) function getstorage(attr) //訪問本地儲存,獲取**名

var cssname = getstorage("skinname");

//判斷是否有**名,就使用獲取的**名,沒有就用預設的

if (cssname && cssname != null) else

1,js動態生成的標籤換膚,例如jq通過字串拼接,新增到頁面上的img標籤

1),通過本地儲存獲取**名函式取到**名值,判斷這個值是否有,有的話,就用取到**名,沒取到值就用預設的blue藍色

//html5獲取本地儲存**

var cssname2 = getstorage("skinname");

//判斷**名,切換路徑

var imgsrccinema;

if (cssname2 && cssname2 != null) else ;

2),在js動態生成的地方寫法:通過字串拼接,+變數來實現

var liimg = '

';$("." + pos).html(liimg);

2,點選按鈕變色的效果換膚:

可以在不同的css檔案裡定義同名class,樣式根據不同**各自另外寫。

例如:在藍色**skincolour_blue.css 

/*

js點選時的樣式

*/.zhleftclick

在黃色**skincolour_yellow.css

/*

1,js點選時的樣式

*/.zhleftclick

在js裡新增class就可以解決不同**下的點選效果,原理是:在不同的**狀態下引用的**css檔案不一樣來達到。

$('.icon01').off('mousedown touchstart').on('mousedown touchstart', function () )

js換膚(自定義顏色)實現

由於原理,js修改less scss css是難以實現的,只能通過生成檔案 引入 重新打包這一幾乎不可能存在的方式來進行,所以不要繼續尋找此類方法了。vue react都支援在行內樣式中嵌入變數,但是行內樣式不能使用css選擇器,難以批量進行,如果應用此法,必將非常麻煩不優雅,會給開發提供非常大的阻...

js實現垂直滾動效果

實現js的垂直滾動首先要先搞懂offsettop和scrolltop的兩個屬性offset屬性介紹 scroll屬性介紹 從以上兩篇文章中可以大致將offsettop理解為內部邊框的margin top,而scrolltop可以理解為當外部塊狀元素比內部塊狀元素高度小後,有一部分內部元素高度被遮住,...

js實現滑鼠拖拽效果

拖拽狀態 0 滑鼠在元素上按下的時候 滑鼠在元素上移動的時候 滑鼠在任何時候放開的時候 將以上思路翻譯成js 就可以實現拖拽的效果了。上面這個原理也可以演變為 拖拽原理2 拖拽狀態 0 滑鼠在元素上按下的時候 滑鼠在元素上移動的時候 滑鼠在任何時候放開的時候 將以上思路翻譯成js 就可以實現拖拽的效...