2013-11-21 143 views
2

我試圖創建一個奇特的按鈕。在按鈕click事件的文本和底部邊緣之間單擊時,請勿觸發。這裏是jsbinHtml鏈接沒有註冊點擊

似乎是在這個代碼的問題:

.button:active { 
    top:2px; 
    box-shadow:0 2px #36c 
} 

但我需要這種「推」的效果。那麼如何保存效果並獲得點擊事件?

回答

4

不要使用box-shadow,使用border-bottom,就像這樣:

.button { 
    border-bottom: 4px solid #000; 
} 

.button:active { 
    border-bottom: 2px solid #000; 
} 

演示:http://jsbin.com/IGUReWO/1/

+0

也可以將'.button:active'中的'top:2px'更改爲'margin-top:2px'來獲取按鈕下方的內容,當點擊時不會移動 – SombreErmine

+0

@SombreErmine,我不確定是否他想要或不會,但你是對的。 – Prisoner

+0

我陷入了困境。我只是因爲他/她的jsbin以這種方式工作,我會提及如何使用這種技術以相同的方式使用它。 :) – SombreErmine

0

那是因爲那裏的鼠標按下明顯大幹快上鼠標按下開火鼠標鬆開click事件觸發。 我只能重現你描述的行爲,如果我點擊按鈕並將鼠標釋放到它外面。

如果你想要的推動作用,那麼您可以附加,而不是點擊事件MouseDown事件而耽誤了數毫秒,例如:

$('.button').on('mousedown', function() { 
    window.setTimeout(function() { 
    var val = parseInt($('.mousedown span').html(), 10); 
    val++; 
    $('.mousedown span').text(val); 
    return false; 
    }, 200); 
}); 

我希望我能幫忙, 乾杯

0

更換

box-shadow: 0 4px black; 

border-bottom: 4px solid black; 

box-shadow:0 2px black; 

border-bottom: 2px solid black; 

你不能點擊一個箱子的影子,但你可以點擊邊框。