html滑动子级父级变化,js只更改父级属性值,子级的样式自动变化,用css的attr()函数应该怎么写?...

我希望js只需更改父级 section 的html数据属性,就可以控制它的子DIV 的样式。

我用css的 attr() 获取数据属性,然后存为css 变量。然后所有子DIV,应用父级变量。

为什么不对? 具体该怎么写?

1
2
3
4

section {

--bgurl:attr(url);

--num:attr(num);

}

section div{

background-image: url(var(--bgurl));

filter: blur(var(--num)px);

}

回答

注意:  attr() 理论上能用于所有的CSS属性但目前支持的仅有伪元素的 content 属性,其他的属性和高级特性目前是实验性的

Document

section div{

background-image: var(--bgurl);

filter: blur(var(--num));

height: 400px;

color: #fff;

font-size: 100px;

}

1

var imgs = [

'https://tse2-mm.cn.bing.net/th/id/OIP.foO_O8mDfOAGzNHcLdgwegHaE8?w=242&h=180&c=7&o=5&dpr=2&pid=1.7',

'https://tse2-mm.cn.bing.net/th/id/OIP.qZ2wfvLkKt6rS4tLTsz0YAHaEK?w=288&h=180&c=7&o=5&dpr=2&pid=1.7',

'https://tse4-mm.cn.bing.net/th/id/OIP.XCnKffX9Nc7ca5njltgigQHaEK?w=288&h=180&c=7&o=5&dpr=2&pid=1.7'

]

var $test = document.getElementById('test');

setInterval(() => $test.style.cssText = `--bgurl: url(${imgs[Math.random()*3|0]});--num:${Math.random()*10}px`, 1000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery 是一个非常流行的 JavaScript 库,它提供了许多易于使用的属性函数,以下是常用的属性函数属性: - `text()`:获取或设置元素的文本内容。 - `html()`:获取或设置元素的 HTML 内容。 - `val()`:获取或设置表单元素的。 - `attr()`:获取或设置元素的属性。 - `prop()`:获取或设置元素的属性,比如 `checked`、`disabled` 等。 - `css()`:获取或设置元素的 CSS 样式。 - `width()`:获取或设置元素的宽度。 - `height()`:获取或设置元素的高度。 - `offset()`:获取元素相对于文档的位置。 - `position()`:获取元素相对于元素的位置。 函数: - `$(selector)`:选择器,选择一个或多个元素。 - `$(selector).each(function(index, element))`:遍历一个或多个元素,并对每个元素执行一个函数。 - `$(selector).on(event, handler)`:为一个或多个元素绑定事件处理程序。 - `$(selector).off(event, handler)`:移除一个或多个元素的事件处理程序。 - `$(selector).addClass(class)`:为一个或多个元素添加一个或多个类。 - `$(selector).removeClass(class)`:从一个或多个元素中删除一个或多个类。 - `$(selector).toggleClass(class)`:在一个或多个元素中切换一个或多个类。 - `$(selector).fadeIn()`:淡入一个或多个元素。 - `$(selector).fadeOut()`:淡出一个或多个元素。 - `$(selector).slideDown()`:向下滑动一个或多个元素。 - `$(selector).slideUp()`:向上滑动一个或多个元素。 - `$.ajax(options)`:执行异步 HTTP(Ajax)请求。 以上是 jQuery 常用的属性函数,当然还有很多其他的属性函数可以使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值