我正在为我工作的公司制作一个扩展/崩溃电话费率表。我目前有一个表下面有一个按钮来展开它,按钮说“展开”。它是功能性的,除了我需要按钮改变为“折叠”时,它被点击,然后当然回到“展开”时,再次点击。按钮上的文字是背景图像。
所以基本上我所需要的是改变一个div的背景图像时,它被点击,除了有点像一个切换。
我正在为我工作的公司制作一个扩展/崩溃电话费率表。我目前有一个表下面有一个按钮来展开它,按钮说“展开”。它是功能性的,除了我需要按钮改变为“折叠”时,它被点击,然后当然回到“展开”时,再次点击。按钮上的文字是背景图像。
所以基本上我所需要的是改变一个div的背景图像时,它被点击,除了有点像一个切换。
当前回答
$('#divID').css("background-image", "url(/myimage.jpg)");
应该这样做,只是在元素上的点击事件中连接它吗
$('#divID').click(function()
{
// do my image switching logic here.
});
其他回答
我是这样做的:
CSS
#button{
background-image: url("initial_image.png");
}
#button.toggled{
background-image:url("toggled_image.png");
}
JS
$('#button').click(function(){
$('#my_content').toggle();
$(this).toggleClass('toggled');
});
$('#divID').css("background-image", "url(/myimage.jpg)");
应该这样做,只是在元素上的点击事件中连接它吗
$('#divID').click(function()
{
// do my image switching logic here.
});
旧帖子,但这将允许你使用图像精灵和调整重复,以及通过使用css属性的速记(背景,重复,左上角)的定位。
$.each($('.smallPreview'), function(i){
var $this = $(this);
$this.mouseenter(function(){
$this.css('background', 'url(Assets/imgs/imgBckg-Small_Over.png) no-repeat 0 0');
});
$this.mouseleave(function(){
$this.css('background', 'url(Assets/imgs/imgBckg-Small.png) no-repeat 0 0');
});
});
使用jQuery有两种不同的方法来更改背景图像CSS。
$('选择'). css(“分辨率”,“url(图片/ example.jpg)”); $('选择'). css({“背景图像”:“url(图片/ example.jpg)”});
仔细观察,注意不同点。在第二种方法中,您可以使用传统的CSS并将多个CSS属性串在一起。
我个人只会使用JavaScript代码在两个类之间切换。
让CSS在你的div上勾勒出你需要的一切减去背景规则,然后添加两个类(例如:扩展和折叠)作为规则,每个规则都具有正确的背景图像(或背景位置,如果使用精灵)。
不同图片的CSS
.div {
/* button size etc properties */
}
.expanded {background: url(img/x.gif) no-repeat left top;}
.collapsed {background: url(img/y.gif) no-repeat left top;}
或CSS与图像精灵
.div {
background: url(img/sprite.gif) no-repeat left top;
/* Other styles */
}
.expanded {background-position: left bottom;}
然后……
带有图像的JavaScript代码
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).addClass('collapsed').removeClass('expanded');
}
else
{
$(this).addClass('expanded').removeClass('collapsed');
}
});
}
JavaScript与精灵
注意:优雅的toggleClass在ie6中不起作用,但是下面的addClass/removeClass方法在这种情况下也可以很好地工作
最优雅的解决方案(不幸的是Internet Explorer 6不友好)
$(function){
$('#button').click(function(){
$(this).toggleClass('expanded');
});
}
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).removeClass('expanded');
}
else
{
$(this).addClass('expanded');
}
});
}
据我所知,这种方法可以跨浏览器工作,而且比起在脚本中修改URL,我更喜欢使用CSS和类。