0

HTML

<div class = "search ui-widget">
    <label for = "keyword"></label>
    <input type="text" id="keyword" onkeypress="searchKeyPress(event)">
    <input type="button" id="btnSearch" onclick="loadNearMeSearchFav('search', keyword.value,'','','no')"  />
</div>

CSS

.search input[type="text"]:focus {
    width: 12%;
    outline: 0;
    box-shadow: 0 0 8px rgba(81, 203, 238, 1);
    background: url(../../img/menu/searchClose.png) 3% 50% no-repeat #f3f3f3;
    padding-left: 30px;
}

以上是我的输入文本的 html 和 css 代码。问题是当用户单击输入字段时,会出现 searchClose 图像。问题是我想让 searchClose 可点击,以便用户可以通过点击轻松删除输入。我已经阅读了许多网站,并且都建议制作一个透明的脚踝标签,该标签可在与我的 searchClose 图像相同的位置单击。但是,我认为这太麻烦了。还有其他方法吗?

4

1 回答 1

1

我假设 searchClose.png 看起来像这样

[                 ]
[              [x]]
[                 ]

那么你需要X以像素为单位获取角的顶部和左侧的位置(使用一些图形程序)并在javascript中的onclick中使用一些数学

如果你使用 jQuery,那么这看起来像:

var search = $('.search input[type="text"]');
var offset = search.offest();
search.click(function(e) {
    var x = e.pageX - offset.left;
    var y = e.pageY - offset.top;
    if (x > YOUR_LEFT_POSITION_OF_THE_BUTTON &&
        x < YOUR_WIDTH_OF_THE_BUTTON + YOUR_LEFT_POSITION_OF_THE_BUTTON &&
        y > YOUR_TOP_POSITION_OF_THE_BUTTON &&
        y < YOUR_HEIGHT_OF_THE_BUTTON + YOUR_TOP_POSITION_OF_THE_BUTTON) {
       // YOU CLICK INSIDE A BUTTON
    }
});

您还可以添加 mousemove 事件并将光标更改为指针。

于 2013-09-20T21:11:35.633 回答