用图片替换checkbox原始样式并实现同样的功能


Posted in Javascript onNovember 15, 2018

1.结构:

<div class="box1">
<input/>

<div class="box2">


<img />

</div>
</div>

2.css里:

1)设置图片的div绝对定位,调整让它与原始input重合。

2)设置input的宽高与图片的div一样大,这样精确一点。

3)然后设置input:position:relative;再设置它的z-index,让它浮在图片那个div的上面。

4)调整两个的位置,让之重合。

5)设置input:opacity:0;

3.jq里:

$(function(){

$("input").click(function(){



if(this.checked){




$(this).siblings(".box2").find("img").attr("src","被选中的图片的src");



}else{




$(this).siblings(".box2").find("img").attr("src","未被选中的图片的src");



}


})

})

注意:siblings()里面只能有一个属性。不能siblings(".box2>img"),这样是错的。

radio修改默认样式也是同样的道理,但是在jq里就要改一些东西了,

如果想点击第一个radio之后,再点击同一个name的radio,它被选中之后,第一个radio背景变为没选中,而第二个radio背景变为被选中,还用上面的jq里 的代码是不能实现的,会出现第一个选中之后,再点第二个会让两个的背景都是被选中的图片。

所以要在判定是否被选中的时候,加上:

$(function(){

$("input").click(function(){



$("input").each(function(){




 if(this.checked){





$(this).siblings(".box2").find("img").attr("src","被选中的图片的src");




 }else{





$(this).siblings(".box2").find("img").attr("src","未被选中的图片的src");




 }



})

 })
})

需要遍历一下input

补充:

用图片替换checkbox的样式 

  由于项目的需要,需要在登录的时候保存用户名,就需要使用checkbox。其中的checkbox样式为给定的一张图片,非选中:

用图片替换checkbox原始样式并实现同样的功能

  ,选中:

用图片替换checkbox原始样式并实现同样的功能

开始准备改变checkbox的样式以达到目的,结果无终而返。因为checkbox的大小,样式很难改变,反正打不到我想要的效果。于是试图通过用图片替换checkbox的样式。

主要知识点:

 (1)通过 label 元素内点击图片,就会触发checkbox控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的checkbox控件上。

<input type="checkbox" class="clsCheckBox" ID="chkRememberPwd"/> 
<label for="chkRememberPwd"><img src="${ctx}/images/more/selector_default.png" width="38" height="38" onclick="checkbox()" /></label>
 //checkbox通过css设置为隐藏
.clsCheckBox{ 
 display:none; 
 }

(2)点击图片时通过JS进行图片的切换。代码如下:

var result = true;
 function checkbox() {
  if (result==true)
 {
 document.images[0].src = "${ctx}/images/more/selector_focus.png";
 result=false;
 }
 else if(result==false)
 {
 document.images[0].src = "${ctx}/images/more/selector_default.png"
 result=true;
 }
 }

登录页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用户登录</title>
<script>history.forward();</script>
<script type="text/javascript">
 function func_key(event){
  if (event.keyCode == 13){
    doLogin();
  }
 }
 function cleanup(o){
 o.value = "";
 o.style.textAlign="left";
 }
 var result = true;
 function checkbox() {
  if (result==true)
 {
 document.images[0].src = "${ctx}/images/more/selector_focus.png";
 result=false;
 }
 else if(result==false)
 {
 document.images[0].src = "${ctx}/images/more/selector_default.png"
 result=true;
 }
 }
</script>
<style type="text/css">
.clsCheckBox{ 
 display:none; 
} 
</style>
</head>
<body >
<div id="header">
<div id="headInfo"><span>登录</span></div>
</div>
<form>
<table class="partb" cellspacing="0" cellpadding="0">
  <tr class="partba">
  <td class="partbb">用户名</td>
  <td><input name="userClientNumber" id="userClientNumber" class="partbc" type="text" value="" onfocus="cleanup(this)"/></td>
  </tr>
  <tr class="partbe"></tr> 
  <tr class="partba">
  <td class="partbb">密码</td>
  <td><input name="userPassword" id="userPassword" class="partbc" type="password" value="" onfocus="cleanup(this)" /></td>
  </tr>
  </table>
<table style="width:450px;margin:-20px 15px;padding:0px;" width="480" border="0">
 <tr><td><input type="checkbox" class="clsCheckBox" ID="chkRememberPwd"/>
<label for="chkRememberPwd"><img src="${ctx}/images/more/selector_default.png" width="38" height="38" onclick="checkbox()" /></label>
<span style="padding-left:15px;font-size:24px;color:#999999;vertical-align:top;line-height:38px;">记住用户名</span></td>
 <td style="text-align:right;padding-right:0px;"><a href="modifyPassword!load.action" style="border-bottom: 1px solid #ffa200;"><span style="color:#ffa200;font-size:24px;">找回登录密码</span></a></td>
 </tr>
</table>
<table class="partb" style="margin-top:180px;" border="0">
 <tr>
 <td width="240" align="left" ><div class="bottondiv" ><input class="inputbotton" type="button" onclick="javascript:doLogin();" value="登 录"/></div></td>
 <td width="240" align="left"><div class="bottondiv" ><input class="inputbotton" type="button" onclick="location='register!loadRegister.action'" value="注 册"/></div></td> 
 </tr>
</table>
</form>
</body>
</html>

总结

以上所述是小编给大家介绍的用图片替换checkbox原始样式并实现同样的功能 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js时间日期和毫秒的相互转换
Feb 22 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
May 09 Javascript
使用Vue.js创建一个时间跟踪的单页应用
Nov 28 Javascript
Avalonjs 实现简单购物车功能(实例代码)
Feb 07 Javascript
jQuery表单设置值的方法
Jun 30 jQuery
Vue作用域插槽slot-scope实例代码
Sep 05 Javascript
VUE脚手架具体使用方法
May 20 Javascript
javascript实现京东快递单号的查询效果
Nov 30 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 #Javascript
微信小程序页面缩放式侧滑效果的实现代码
Nov 15 #Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
Nov 15 #Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 #Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 #Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 #jQuery
详解ES6 Fetch API HTTP请求实用指南
Nov 14 #Javascript
You might like
php无限分类使用concat如何实现
2015/11/05 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
php中strtotime函数性能分析
2016/11/20 PHP
php中final关键字用法分析
2016/12/07 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
JavaScript 事件系统
2010/07/22 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
简单了解python模块概念
2018/01/11 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
python安装pil库方法及代码
2019/06/25 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
工厂保洁员岗位职责
2013/12/04 职场文书
军训自我鉴定200字
2014/02/13 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书