文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jQuery如何实现点击替换图片特效

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关jQuery如何实现点击替换图片特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  1,起因

  最近在工作中要实现自定义式的radio样式,而我们通常使用的时默认的样式,因为自己实在想不到解决的方法,于是开始搜索,最终看到了不错的解决办法,可以完美解决我们遇到的问题。

  2,原理

  大家都知道在写结构的时候,radio或checkbox都会跟随label一起使用,label的for属性值和input的id值相同的情况下,点击label就可以选中input,这里正是利用label 来覆盖我们的input默认样式,通过给label添加背景图片(美化的checkbox或radio),也就是在点击的过程中,我们是看不到默认的input的(给input设置z-index:-1),而点击的是label,通过不同的事件,加载不同的背景图片(这里是改变背景图片的位置)

  3,设置美化checkbox或radio的默认样式

  (1)页面结构

  Which genres do you like?

  Action / Adventure

  Comedy

  Epic / Historical

  Science Fiction

  Romance

  Western

  Caddyshack is the greatest movie of all time, right?

  Totally

  You must be kidding

  What's Caddyshack?

  (2)jquery code(前提必须引入jquery库)

  jQuery.fn.customInput=function(){

  $(this)。each(function(i){

  if($(this)。is('[type=checkbox],[type=radio]')){

  var input=$(this);

  //get the associated label using the input's id

  var label=$('label[for='+input.attr('id')+']');

  //get type,for classname suffix

  var inputType=(input.is('[type=checkbox]')) ? 'checkbox' : 'radio';

  //wrap the input + label in a div

  $('

  //find all inputs in this set using the shared name attribute

  var allInputs=$('input[name='+input.attr('name')+']');

  //necessary for browsers that don't support the :hover pseudo class on labels

  label.hover(function(){

  $(this)。addClass('hover');

  if(inputType=='checkbox' && input.is(':checked')) {

  $(this)。addClass('checkedHover');

  }

  },function(){

  $(this)。removeClass('hover checkedHover');

  });

  //bind custom event, trigger it, bind click,focus,blur events

  input.bind('updateState',function(){

  if(input.is(':checked')){

  if(input.is(':radio')){

  allInputs.each(function(){

  $('label[for='+$(this)。attr('id')+']')。removeClass('checked');

  });

  };

  label.addClass('checked');

  } else {

  label.removeClass('checked checkedHover checkedFocus');

  }

  })

  。trigger('updateState')

  。click(function(){

  $(this)。trigger('updateState');

  })

  。focus(function(){

  label.addClass('focus');

  if(inputType=='checkbox' && input.is(':checked')) {

  $(this)。addClass('checkedFocus');

  }

  })

  。blur(function(){

  label.removeClass('focus checkedFocus');

  });

  }

  });

  }

  引入jquery库,再引入上面的代码后,就可以执行下面的代码

  $('input')。customInput();

  (3)生成的外层div

  如果你的代码结构是label和input成对写的话,那么在它们的外层就会生成一个div

关于“jQuery如何实现点击替换图片特效”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯