用图片替换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 相关文章推荐
jQuery的一些注意
Dec 06 Javascript
可以支持多中格式的JS键盘
May 02 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
Jul 05 Javascript
JS实现具备延时功能的滑动门菜单效果
Sep 17 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
JS实现的计数排序与基数排序算法示例
Dec 04 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
详解Vue-axios 设置请求头问题
Dec 06 Javascript
vue prop传值类型检验方式
Jul 30 Javascript
vue如何使用rem适配
Feb 06 Vue.js
JavaScript执行机制详细介绍
Dec 06 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 htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
canvas知识总结
2017/01/25 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
js中new一个对象的过程
2017/02/20 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
低版本中Python除法运算小技巧
2015/04/05 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
仓库管理制度
2014/01/21 职场文书
科技工作者先进事迹
2014/08/16 职场文书
离婚协议书范文
2015/01/26 职场文书
外国人来华邀请函
2015/01/31 职场文书
道歉的话语大全
2015/05/12 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python