使用jQuery循环设置css属性
use jQuery loop to set css properties
我正试图使用jQuery循环来设置一个变量,该变量在每次循环中都会发生变化。然后将该变量应用于css属性。我遇到的问题是,每个带有变量的css属性都有相同的值(即循环结束时的值)。
pageArray = new Array('web1','web2','web3','web4');
**leftTabHeight** = 0;
for (var p=0;p<pageArray.length;p++){
**leftTabHeight** = parseFloat(p) *100;
$('.left.main').addClass('flip_left');
$('.left.main').css({'width':'482px', 'height':'668px', 'z-index':'11','background':'url("images/snake_tab.png") no-repeat, url("images/book_left_main.png") no-repeat','background-position': '0px '+**leftTabHeight**+'px, 42px 42px','position':'absolute'});
};
HTML:
<div class="web4 left main">
<h3 class="left_button">web 4</h3>
<h4>web 4</h4>
<p>Stuff</p>
</div>
<div class="web4 left bind">
</div>
<div class="web3 left main">
<h3 class="left_button">web 3</h3>
<h4>web 3</h4>
<p>stuff</p>
</div>
<div class="web3 left bind">
</div>
<div class="web2 left main">
<h3 class="left_button">web 2</h3>
<h4>web 2</h4>
<p>Stuff</p>
</div>
<div class="web2 left bind">
</div>
<div class="web1 left main">
<h3 class="left_button">web 1</h3>
<h4>web 1</h4>
<p>Stuff</p>
</div>
<div class="web1 left bind">
</div>
所以我希望每个类都有一个不同位置的背景图像。目前,它们都以300像素的高度堆叠在顶部。
感谢
因此,我在循环中放置了一个console.log(leftTabHeight),它确实打印了0100200300。300是唯一应用的。
您可以执行以下操作:
var variable_position = 0;
$('.background_image').each(function(){
$(this).css('background-position', '0px ' + variable_position + 'px 42px 42px');
variable_position += 100;
});
这是假设需要它的对象具有类"background_image"。
好吧,我已经发现问题是,每次函数循环时,我都会重写所有的div。我需要将第三个类作为变量添加到jQuery选择中。所以这个代码有效:
pageArray = new Array('snake','web_s','web1','web2','web3','web4');
var leftTabHeight = 0;
for (var p in pageArray){
leftTabHeight = parseFloat(p *100);
$('.'+pageArray[p]+'.left.main').addClass('flip_left');
$('.'+pageArray[p]+'.left.main').css({'width':'482px', 'height':'668px', 'z-index':'11','background':'url("images/snake_tab.png") no-repeat, url("images/book_left_main.png") no-repeat','background-position': '0px '+leftTabHeight+'px, 42px 42px','position':'absolute'});
};
问题是您引用了所有".left.main“
项。将这些行更改为$('.'+pageArray[p]+'.left.main').css(...)
,就这样。
相关文章:
- 谷歌图表-如何更改整个表的css属性
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 如何使用JavaScript查找未定义的CSS属性的值
- 在jquerymobile中设置按钮css属性的动画
- JavaScript无法提取引号css属性
- 使用AngularJS动态更改css属性
- 使用javascript获取具有特定CSS属性的所有元素
- 将css属性添加到对象的集合中
- 取消img的css属性宽度和高度(不能使用“auto”)
- CSS属性更改侦听器
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 在 javascript css 属性中使用变量
- 在jQuery中链接时CSS属性不起作用
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 使用循环增加css属性值
- 更改类所选空输入的CSS属性
- 无法查找元素'手动加载CSS文件时的CSS属性