通過js渲染高層級DOM實現網頁加水印

2022-08-23 13:21:06 字數 1978 閱讀 5931

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>watermarks

title

>

head

>

<

style

type

="text/css"

>

html,

body

style

>

<

body

>

<

script

>

watermark();

function

watermark(settings) ;

object.assign(defaultsettings, settings);

let otemp

=document.createdocumentfragment();

//獲取頁面最大寬度

//let p_width = math.max(document.body.scrollwidth, document.body.clientwidth);

//let cutwidth = p_width * 0.0150;

//let page_width = p_width - cutwidth;

let page_width

=document.body.clientwidth;

//獲取頁面最大高度

//let page_height = math.max(document.body.scrollheight, document.body.clientheight) + 450;

let page_height

=document.body.scrollheight

+document.body.scrolltop;

//如果將水印列數設定為0,或水印列數設定過大,超過頁面最大寬度,則重新計算水印列數和水印x軸間隔

if(defaultsettings.watermark_cols

===0

||(parseint(defaultsettings.watermark_x

+defaultsettings.watermark_width

*defaultsettings.watermark_cols

+defaultsettings.watermark_x_space

*(defaultsettings.watermark_cols -1

)) >

page_width))

//如果將水印行數設定為0,或水印行數設定過大,超過頁面最大長度,則重新計算水印行數和水印y軸間隔

if(defaultsettings.watermark_rows

===0

||(parseint(defaultsettings.watermark_y

+defaultsettings.watermark_height

*defaultsettings.watermark_rows

+defaultsettings.watermark_y_space

*(defaultsettings.watermark_rows -1

)) >

page_height))

let x;

let y;

for(let i =0

; i

<

defaultsettings.watermark_rows; i

++) ;};}

script

>

body

>

通過原生JS實現React的虛擬Dom及渲染方法

jsx語法通過babel會轉換為react.createelement 形式的 所以也是為什麼在引入react時,要將其命名為 react 實現react的createelement方法 const react 實現渲染函式 const render vnode,container 解構賦值 con...

js 實現 多層級物件合併

需求是使用js對資料的格式進行轉換 把乙個二維陣列 包含層級資訊,層級數是不固定的 list 轉換為多層級的物件 我的思路就是 迴圈先把list裡單條資訊轉換為 多層級物件 然後和上一條 進行合併 原資料型別 分別轉換為 a a b 最終合併效果 a2 b onsubmit void 存放的原始資料...

通過JS實現氣泡排序

氣泡排序的三個版本 先說最簡單的排序,嚴格說不屬於氣泡排序。原理 當i 0時,讓arr 0 在第一位的數字 和後面每一位的數字比較。若出現第一位的數字比其中一位大的時候,則和那一位數字交換位置。當第一位數字和其他數字全部比較和互換結束,此時在第一位的數字就是陣列中最小的。然後當i 1時,讓arr 1...