使用 jquery 进行后台定位在 IE7 中不起作用
我的脚本应该在单击按钮时动态更改背景位置(在当前值中添加或减去 1%)。在 Fx 和 Chrome 中运行良好,在 ie8 中也运行良好(我相信),但在 ie7 中不行。
这是我的代码:
function makeClicker(index) {
$('#leftbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (1 + parseInt(bPos[0], 0));
bPos = bPosResult + '% ' + bPos[1] + '%';
$('#div' + index).css('background-position', bPos);
$('#vposition' + index).attr("value", bPosResult + '%');
});
$('#rightbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (-1 + parseInt(bPos[0], 0));
bPos = bPosResult + '% ' + bPos[1] + '%';
$('#div' + index).css('background-position', bPos);
$('#vposition' + index).attr("value", bPosResult + '%');
});
$('#upbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (1 + parseInt(bPos[1], 0));
bPos = bPos[0] + '% ' + bPosResult + '%';
$('#div' + index).css('background-position', bPos);
$('#hposition' + index).attr("value", bPosResult + '%');
});
$('#downbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (-1 + parseInt(bPos[1], 0));
bPos = bPos[0] + '% ' + bPosResult + '%';
$('#div' + index).css('background-position', bPos);
$('#hposition' + index).attr("value", bPosResult + '%');
});
}
for(var i = 1; i <= 5; i++)
makeClicker(i);
感谢您对可能导致此问题的任何建议。 -西蒙
My script is supposed to dynamically change the background-position when clicking on a button (adding or substracting 1 percent from the current value). Works fine in Fx and Chrome, and ie8 too (i believe), though not in ie7.
Here's my code:
function makeClicker(index) {
$('#leftbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (1 + parseInt(bPos[0], 0));
bPos = bPosResult + '% ' + bPos[1] + '%';
$('#div' + index).css('background-position', bPos);
$('#vposition' + index).attr("value", bPosResult + '%');
});
$('#rightbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (-1 + parseInt(bPos[0], 0));
bPos = bPosResult + '% ' + bPos[1] + '%';
$('#div' + index).css('background-position', bPos);
$('#vposition' + index).attr("value", bPosResult + '%');
});
$('#upbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (1 + parseInt(bPos[1], 0));
bPos = bPos[0] + '% ' + bPosResult + '%';
$('#div' + index).css('background-position', bPos);
$('#hposition' + index).attr("value", bPosResult + '%');
});
$('#downbutton' + index).click(function() {
var bPos = $('#div' + index).css('background-position');
bPos = bPos.replace(/%/g, '').split(' ');
var bPosResult = (-1 + parseInt(bPos[1], 0));
bPos = bPos[0] + '% ' + bPosResult + '%';
$('#div' + index).css('background-position', bPos);
$('#hposition' + index).attr("value", bPosResult + '%');
});
}
for(var i = 1; i <= 5; i++)
makeClicker(i);
Thanks for any advices on what could cause this.
-Simon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 Internet Explorer,您需要使用
background-position-x
和background-position-y
属性。下面是有关如何支持 IE 的示例。我还对您的代码进行了一些重构以减少冗余:
我还没有测试过,但它应该可以工作。
For Internet Explorer, you need to use the
background-position-x
andbackground-position-y
attributes.Here's an example on how you can support IE also. I also refactored your code a bit to reduce redundancy:
I haven't tested that but it should work.