用图片替换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 相关文章推荐
JavaScript 动态创建VML的方法
Oct 14 Javascript
深入剖析JavaScript中的枚举功能
Mar 06 Javascript
JavaScript AJAX之惰性载入函数
Aug 27 Javascript
JavaScript匿名函数用法分析
Feb 13 Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
js简易版购物车功能
Jun 17 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
element-ui 上传图片后清空图片显示的实例
Sep 04 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
vue实现axios图片上传功能
Aug 20 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 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
关于python字符串方法分类详解
2019/08/20 Python
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
应届生法律求职信
2013/10/22 职场文书
企业内部培训方案
2014/02/04 职场文书
公司办公室岗位职责
2014/03/19 职场文书
会计试用期自我评价
2014/09/19 职场文书
团队会宣传标语
2014/10/09 职场文书
邀请函格式范文
2015/02/02 职场文书
职工食堂管理制度
2015/08/06 职场文书
爱国主题班会教案
2015/08/14 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL