H5自定义属性

HTML5自定义属性介绍

**

H5自定义属性

**

H5自定义属性

传统的HTML中如果想要实现某种样式,可以在标签上添加id、class、或者在标签上添加固有属性,通过CSS中的类选择器、id选择器、属性选择器来实现,在许多UI框架中,例如:bootstrap,可以通过data-[ ]自定义属性,不用写一行js代码,方便了很多。同样在HTML5可以通过data-自定义属性名来给元素添加自定义的属性名。一旦添加完成之后。通过JS可以获取以及设置自定义属性。
例如:

<div data-sup= "thisData" id = "first"></div>
<script>
    //利用原生js获取
    var first= document.getElementsById("first");
    //获取sup值
    console.log(first.dataset.sup);
    //设置sup值
    support.dataset.sup = "second";
    
</script>

H5中自定义属性大体可分为两种方式:

  1. 直接在页面中写入data-[ ],
  2. 通过js设置(上面的小例子就是js方式)

在代码开始之前先说明一下规范和注意事项

  • 以data- 开头
  • data-后面必须至少有一个字符,多个单词使用 - 连接
  • 名称最好使用小写,然后用-连接。取值时候用小驼峰取出
  • 名称中不要有特殊字符
  • 最好不要用纯数字
    下面展示代码:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box {
				background-color: aqua;
				width: 300px;
				height: 300px;
			}
			[data-text-color] {
				color: brown;
			}
			[data-text-color-pink] {
				color: pink;
			}
			[data-text-color-red] {
				color: red;
			}
		</style>
	</head>
	<body>
		<!-- 1、如何自定义属性 -->
		<div id="" class="box" data-uid='201501' data-user-name="菜鸟" data-2='使用纯数字'></div>
		<div id="" data-text-color>通过data-设置样式</div>
		<div id="" data-text-color-pink>通过data-设置样式</div>
		<div id="" data-text-color-red>通过data-设置样式</div>
		<div id="" data-text-color>通过data-设置样式</div>
	</body>
	<script>
		// 第一种-直接在页面中写入data-uid
		var box = document.querySelector(".box")
		// 获取自定义属性-获取值 getattribut
		console.log("uid", box.getAttribute('data-uid')) //可以拿得到
		console.log("userName", box.getAttribute('data-user-name')) //可以拿得到

		// 第二种-用js设置
		box.setAttribute("data-sex", "女")

		// 通过dataset 设置值和取值
		box.dataset.des = '自定义指令' //设置值

		// 取值
		console.log(box.dataset) //DOMStringMap 

		// 获取dataUsername
		console.log(box.dataset.userName) //连着的字符需要转换成驼峰命名
		console.log(box.dataset["userName"]) //解构的方式,也需要是驼峰
		console.log(box.dataset[2]) //纯数字必须使用解构
		
		var box = document.querySelectorAll("[data-user-name]")//通过querySelectorAll获取所有的含有该属性的元素
		console.log(box)
	</script>
</html>

以上就是HTML5自定义属性的全部内容,样例中包含了在程序运行中设置值,取值的详细过程,建议多尝试,如果有不懂的可以在评论区发起你的疑问,欢迎各位批评指正!

### 如何在 UniApp 的 H5 平台中实现自定义 Tabbar #### 1. 修改 `manifest.json` 文件配置 为了启用自定义 tabBar,在项目的根目录下找到并编辑 `manifest.json` 文件。进入 **"App模块配置" -> "自定义导航栏和底部标签栏"**,开启 `custom-tab-bar` 字段,并将其指向一个 Vue 组件路径[^1]。 以下是具体的配置示例: ```json { "plus": { "tabBar": { "custom": true, "list": [ { "pagePath": "pages/index/index", "text": "首页" }, { "pagePath": "pages/cart/cart", "text": "购物车" } ] } } } ``` 注意:H5 平台上默认不会显示原生 tabBar,因此无需调用 `uni.hideTabBar()` 方法来隐藏它[^3]。 --- #### 2. 创建自定义 Tabbar 组件 创建一个新的 Vue 文件作为自定义 tabBar 的组件文件,例如命名为 `mytab.vue`。此组件将负责渲染所有的 tab 列表项以及处理点击事件跳转逻辑[^2]。 下面是该组件的一个简单实现例子: ```vue <template> <view class="tab-bar"> <block v-for="(item, index) in list" :key="index"> <view class="tab-item" :class="{ active: current === item.pagePath }" @click="switchPage(item)" > {{ item.text }} </view> </block> </view> </template> <script> export default { data() { return { list: [ { pagePath: "/pages/index/index", text: "首页" }, { pagePath: "/pages/cart/cart", text: "购物车" } ], current: "" }; }, onLoad(options) { this.current = options.path || "/"; }, methods: { switchPage(item) { const url = encodeURIComponent(item.pagePath); if (this.current !== item.pagePath) { uni.redirectTo({ url: `/pages/mytab/mytab?path=${url}` }); } } } }; </script> <style scoped> .tab-bar { display: flex; justify-content: space-around; align-items: center; height: 50px; background-color: #f8f8f8; } .tab-item { padding: 10px; font-size: 14px; } .active { color: blue; } </style> ``` 上述代码实现了以下功能: - 动态加载指定的页面列表。 - 当前选中的 tab 使用样式高亮标记。 - 跳转到对应的目标页面时传递参数以便更新当前状态。 --- #### 3. 页面间通信机制 为了让每个页面都能知道当前处于哪个 tab 下面的状态,可以通过 URL 参数或者 Vuex 来共享数据。这里采用的是通过 URL 查询字符串的方式获取当前激活的路由地址。 例如,在主应用入口处监听路径变化从而同步至子组件: ```javascript onLoad(option) { console.log('Current Path:', decodeURIComponent(option.path)); this.current = decodeURIComponent(option.path); // 更新当前活动页索引 } ``` 这样可以确保无论何时切换回某个特定页面都会自动刷新其关联的菜单选项卡位置。 --- #### 4. 注意事项 尽管可以在 H5 中完全依赖前端技术来自由定制外观设计,但仍需考虑兼容性和性能优化问题。比如减少不必要的 DOM 元素数量、控制图片资源大小等措施都可以提升用户体验质量。 另外值得注意的一点是,如果涉及到多端适配开发,则可能还需要额外调整部分样式属性以满足不同平台的要求差异性。 --- ### 总结 综上所述,通过修改 manifest 配置引入外部组件形式即可轻松完成整个流程操作;同时借助简单的 JavaScript 控制流管理界面交互行为,最终达成预期目标——即制作一款高度灵活可扩展性的跨屏解决方案!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

么贺贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值