千家信息网

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

发表于:2024-10-08 作者:千家信息网编辑
千家信息网最后更新 2024年10月08日,这篇文章将为大家详细讲解有关jQuery如何实现点击替换图片特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,起因最近在工作中要实现自定义式的radio样式,而
千家信息网最后更新 2024年10月08日jQuery如何实现点击替换图片特效

这篇文章将为大家详细讲解有关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如何实现点击替换图片特效"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

图片 样式 代码 篇文章 结构 背景 背景图片 特效 不同 不错 外层 更多 面的 生成 实用 相同 也就是 事件 位置 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 曙光天阔服务器海光 黄浦区软件开发预算 软件开发的行业应用及其模式 计算机网络技术员培训 网络安全产业指标 游戏数据库下载 宝鸡软件开发工程 四川正规软件开发费用是多少 杭州墨壹网络技术有限公司 数据库中数据查询及视图操作报告 命运2服务器离线最后一块拼图 网络安全上网行为审计 计算机软件开发合同欺诈案例 我的世界服务器需要先干嘛 游戏软件开发的学什么专业 汇智互联网科技是做什么的 北京能通天下网络技术 b5对战平台csgo服务器 如何做好小学校园网络安全工作 龚向明软件开发 服务器网站安全狗 怎样建立网络安全管理机制 校园教学系统软件开发过程 服务器英文怎么改中文 数据库和语言框架 asp.net访问数据库 最小的数据库中文版 简历数据库应该做几张表 金融业网络安全宣传报告 集宁区网络安全应急指挥中心官网
0