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

相关推荐: div与span使用实例分析

本篇内容主要讲解“div与span使用实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“div与span使用实例分析”吧! 1、语法对照 他们均是html标签。 均为语法纯粹相匹敌对标签。 2、默许根基CSS属…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/21 15:50
下一篇 09/21 15:50

相关推荐