javascript - 使用 jQuery 创建按钮翻转

标签 javascript jquery rollover

我正在尝试创建一个可以在全局范围内使用的函数来创建图像的翻转状态。基本上,我希望能够向图像添加一个类,然后当您翻转它时,jquery 将使用相同的图像名称和相同的扩展名,但在文件名中添加“-over”。 (我将有一个翻转状态的图像,其名称与非翻转状态相同,除了上面有 -over 。我想出了这个,但它不起作用。我是做错了什么还是有人知道更好的方法吗?

$('.btn').hover(function(){
    $(this).attr("src").split(".jpg").join("Over.jpg"));
});

图像:

<img src="/static/images/overlay-close-button.jpg" alt="Close" title="Close" id="our-staff-overlay-close" class="btn"/>

谢谢!

编辑:有什么方法可以让它不特定于文件时间,它可以找出任何文件类型而不仅仅是 jpg?

我正在使用:

$('.btn').hover(function(){
    this.src = this.src.split(".jpg").join("Over.jpg");
}, function() {
    this.src = this.src.split("Over.jpg").join(".jpg");
 });

而且效果很好

编辑 2:我还可以添加事件状态(单击按钮时)吗?

最佳答案

分割和合并应该按预期工作,您只需将其设置回 img 的 src 属性即可:

$('.btn').hover(function() {
    var src = $(this).attr("src");
    src = src.split('.jpg').join('-over.jpg');
    $(this).attr("src", src);
});

此外,如果您希望它与任何扩展一起使用,您可以使用如下正则表达式:

$('.btn').hover(function() {
    var src = $(this).attr("src");
    src = src.replace(/(.*)\.(png|gif|jpg|jpeg)$/, "$1-over.$2");
    $(this).attr("src", src);
});

正则表达式匹配以句点结尾后跟 png、gif、jpg 或 jpeg 之一的任何内容,并将其替换为第一部分(路径 + 文件名),即字符串“-over”、句点和原始扩展名。

您可以通过从源中删除 -over 将其替换回原始状态:

$('.btn').hover(function() {
    var src = $(this).attr("src");
    src = src.replace(/(.*)\.(png|gif|jpg|jpeg)$/, "$1-over.$2");
    $(this).attr("src", src);
}, function() {
    var src = $(this).attr("src");
    src = src.replace(/(.*)-over\.(png|gif|jpg|jpeg)$/, "$1.$2");
    $(this).attr("src", src);
});

jQuery().hover 事件接受两个函数,第一个函数在您开始悬停时调用,第二个在您退出悬停时调用。

关于javascript - 使用 jQuery 创建按钮翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587288/

相关文章:

HTML/CSS 图像缩略图翻转

javascript - 简单问题 : Safari and CSS/Javascript Rollovers

javascript - 如何在 Kendo UI 的表单选择中设置默认选择值?

javascript - 使用原型(prototype)创建数组,其方法实现数组原型(prototype)的包装器

javascript - 如何在 Chrome 开发工具中使用 getEventListeners?

javascript - Jquery 在提交之前将所有可见字段标记为必填

css - Chrome 中的 CSS 翻转问题 - 图像消失

javascript - 根据 csv 单元格值在 javascript 中插入值

javascript - 如何使用 jQuery 将输入值插入到更多填充的字段中?

javascript - Jquery:在html页面中更改类时的平滑过渡效果