我希望在css中按下此按钮效果。我的意思是举个例子让我说我按一个按钮然后我想改变它的css,使它看起来按下。这是我尝试过的东西。但它不起作用。我用过一个网站上的例子。但按钮的尺寸变小,看起来不同。以下是代码http://jsfiddle.net/goku/GdD34/
的链接.pressed{
position:relative;
top: 3px;
color: #fqq;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
}
input.happy {
background-image: url(/img/happy.png);
background-color: transparent;
background-repeat: no-repeat;
border: none;
width: 64px;
height: 64px;
margin: 10px;
cursor: pointer;
border-radius:8px;
-moz-border-radius:8px;
-webkit-border-radius:8px;
box-shadow: 0px 3px 5px #000;
-moz-box-shadow: 0px 3px 5px #000;
-webkit-box-shadow: 0px 3px 5px #000;
}
$('.happy').click(function() {
alert('hello');
$('.happy').attr('class','pressed');
});
<input type="button" class="happy">
答案 0 :(得分:0)
刚使用:active伪类。
input.happy:active { /* Your style */ }
答案 1 :(得分:0)
你有一些语法错误。
最佳活动不是.click()
,而是.mousedown()
;
单击不释放的按钮时:
$('.happy').mousedown(function() {
$('.happy').attr('class','pressed');
});
我相信它现在正在发挥作用:http://jsfiddle.net/HKZ7M/
然后当您释放鼠标时,将其归还给旧班级。
单击按钮然后将其释放
$('.happy').mousedown(function() {
$('.happy').attr('class','pressed');
$('.pressed').mouseup(function() {
$('.pressed').attr('class','happy');
});
});
它有效:http://jsfiddle.net/Xx2Gn/
重要提示: .pressed
按钮小于.happy
按钮,释放鼠标时必须确保指针位于新{上方} {1}}按钮,这就是you must make them the same size。
答案 2 :(得分:0)
这种情况正在发生,因为您正在更换课程而不是添加新课程。你应该使用:
$('.happy').addClass('pressed');
而不是:
$('.happy').attr('class','pressed');
因为当你这样做时,你删除了之前应用它的所有css。您可以选择将宽度/高度或任何其他css添加到pressed
类。
答案 3 :(得分:0)
我建议您将CSS的顺序和JS更改为:
<style>
input.happy {
background-image: url(/img/happy.png);
background-color: transparent;
background-repeat: no-repeat;
border: none;
width: 64px;
height: 64px;
margin: 10px;
cursor: pointer;
border-radius:8px;
-moz-border-radius:8px;
-webkit-border-radius:8px;
box-shadow: 0px 3px 5px #000;
-moz-box-shadow: 0px 3px 5px #000;
-webkit-box-shadow: 0px 3px 5px #000;
}
input.happy.pressed{
position:relative;
top: 3px;
color: #fqq;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
}
</style>
<script>
$(function(){
$(".happy").click(function(){
$(this).addClass("pressed");
});
});
</script>
<input type="button" class="happy">
注意,“$(function(){”位表示“在页面加载后执行此操作”。“addClass”将类添加到元素的类列表中,但必须在DOM具有之后分配事件加载。
此外,您必须在点击功能中使用'$(this)'代替'$(“。happy”)',以便仅将样式应用于单击的按钮。
答案 4 :(得分:0)
你的代码中有一些东西(小提琴):
$('happy')
函数内部,所以找不到任何元素。$('.happy').attr('class', 'happy pressed');
但是要将.pressed
更改为input.pressed
并移至.happy
以下$(this).attr(...)