成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊如何實現自定義滑塊組件?

開發 開發工具
整個滑塊組通過絕對定位的方式將其定位在web頁面的右上角,取消ul列表的默認列表樣式,每個滑塊的名稱、滑塊、值居中對齊,只需要簡單幾個css樣式就可以達到這個效果。

下面的動畫展現了通過兩個代表x、y軸的滑塊來實現圖形的平移效果動畫,本文介紹怎么來實現這樣的滑塊。

滑塊html結構

示例通過ul列表結構組織,每個li元素的內容表示一個滑塊,每個滑塊包含名稱、滑塊和值三部分內容,其中滑塊使用input元素即可實現,只需要將type設置為range即可。

<div id="toolbox"><ul><li><!--滑塊名稱--><div>x</div><!--滑塊--><input class="xin-widget-slider" type="range" min="0" max="1740" value="870"><!--滑塊表示的值--><div class="xin-widget-value">399</div></li><li><div>y</div><input class="xin-widget-slider" type="range" min="0" max="860" value="430"><div class="xin-widget-value">312</div></li></ul>
</div>

滑塊CSS樣式

整個滑塊組通過絕對定位的方式將其定位在web頁面的右上角,取消ul列表的默認列表樣式,每個滑塊的名稱、滑塊、值居中對齊,只需要簡單幾個css樣式就可以達到這個效果。

/*將toolbox容器絕對定位到web頁面右上角*/
#toolbox {
position: absolute;
top: 0;
right: 0;
margin: 1rem 2rem;
opacity: 0.6;
}
/*不顯示ul任何列表樣式*/
#toolbox ul {
list-style-type: none;
}
/*居中對齊滑塊名稱、滑塊、值*/
#toolbox ul li {
display: flex;
align-items: center;
}

TypeScript代碼實現滑塊組件封裝

接下來,還需要通過js代碼添加滑塊監聽處理方法,實時更新滑塊的值,并提供回調入口供應用使用該滑塊。這里通過TypeScript來實現,代碼如下:

export class xinUI {

// 創建滑塊組件
setupSlider(parent_selector: string, options: any) {
var parent = document.querySelector(parent_selector);

// 從options中提取滑塊的名稱、最小、最大值、當前值等,不存在的則取默認值
var name = options.name;
var min = options.min || 0;
var max = options.max || 1;
var callback = options.callback;
var value = options.value || 0;
// 創建一組滑塊
var elm_li = document.createElement("li");
elm_li.innerHTML = `
<div>${name}</div>
<input class="xin-widget-slider" type="range" min="${min}" max="${max}" value="${value}">
<div class="xin-widget-value">${value}</div>`;
parent.appendChild(elm_li);
var elm_slider = elm_li.querySelector(".xin-widget-slider");
var elm_value = elm_li.querySelector(".xin-widget-value");
// 更新顯示滑塊的值
updateValue();
// 添加input、change事件,實時改變滑塊的值并回調options指定的方法
elm_slider.addEventListener("input", handleChange);
elm_slider.addEventListener("change", handleChange);

function updateValue() {
elm_value.textContent = value;
}

function handleChange(event) {
value = event.target.value;
updateValue();
// 供用戶回調
callback(event, {value: value});
}
}
};

滑塊組件示例

下面的示例在web頁面的右上角創建兩個滑塊代表x、y坐標,滑動滑塊將在控制臺打印滑塊的值。
index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./src/css/layout.css">
<title>滑塊組件使用示例</title>
</head>
<body>
<div id="toolbox">
<ul>
</ul>
</div><!-- slider-ui.js為上面滑塊組件代碼編譯為js后的代碼,這里不再列出 -->
<script type="module" src="./build/slider-ui.js"></script>
<script type="module" src="./build/main.js"></script>
</body>
</html>

main.ts

import { xinUI } from "./slider-ui.js";

function main() {

var translation = [10, 30];
// 創建x、y平移滑塊
var myUI = new xinUI();
myUI.setupSlider("#toolbox ul", {name: "x", max: 100, value: translation[0], callback: updatePosition(0)});
myUI.setupSlider("#toolbox ul", {name: "y", max: 100, value: translation[1], callback: updatePosition(1)});

function updatePosition(index) {
return function(event, ui) {
translation[index] = parseInt(ui.value);
//以下為應用處理的代碼,這里僅打印其信息以示例console.log(translation[index]);
}
}
}
main();

export {};
責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-07-15 16:45:35

slider滑塊組件鴻蒙

2024-06-03 10:00:51

Vue 3語法插槽

2022-03-01 16:09:06

OpenHarmon鴻蒙單選組件

2022-12-07 08:56:27

SpringMVC核心組件

2009-09-07 22:00:15

LINQ自定義

2022-04-24 15:17:56

鴻蒙操作系統

2024-08-09 09:02:56

2009-09-03 13:34:03

.NET自定義控件

2022-09-07 15:57:41

KubernetesCRD

2023-02-20 15:20:43

啟動頁組件鴻蒙

2009-06-24 15:13:36

自定義JSF組件

2021-11-01 10:21:36

鴻蒙HarmonyOS應用

2020-04-15 15:35:29

vue.jsCSS開發

2013-01-10 09:36:19

NagiosNagios插件

2021-05-29 16:12:00

通信協議設備

2021-08-09 10:31:33

自定義授權響應

2022-07-06 20:24:08

ArkUI計時組件

2022-10-26 15:54:46

canvas組件鴻蒙

2022-10-25 15:12:24

自定義組件鴻蒙

2009-06-25 14:53:35

自定義UI組件JSF框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区2区三区4区公司二百 | 欧美久久久久久久久中文字幕 | 成人福利在线 | 91视频网址 | 日韩三级电影在线看 | 黄色毛片网站在线观看 | 欧美精品久久久久 | 成人av观看| 在线伊人 | 亚洲国产片 | 国产精品亚洲第一区在线暖暖韩国 | 日韩一区二区三区在线 | 国产亚洲一区二区三区在线观看 | 蜜桃五月天 | 超碰成人免费观看 | 99久久精品国产毛片 | 成人区精品一区二区婷婷 | 99日韩| 91精品观看| 日韩中文在线 | 日韩三区 | 精品国产一级片 | 久草中文在线 | 色视频成人在线观看免 | 伊人久操 | 日韩一二三区视频 | 日韩超碰| 一区二区三区中文字幕 | av网站在线看 | 午夜一级黄色片 | 中文字幕高清 | 综合二区 | 毛片入口| 日韩精品一区二区三区在线观看 | 91免费在线视频 | 综合精品久久久 | 精品在线一区二区三区 | 中文在线播放 | 91视频在线观看免费 | 成人免费视频网站在线看 | 国产高潮好爽受不了了夜夜做 |