“星星评级”样式表单设计
来源:互联网 发布:vb.net sleep 编辑:程序博客网 时间:2024/04/29 14:30
很多网页调查问卷中都经常使用这种形式,而且最常见的就是淘宝购物时的星级评价,下面自己动手实现一个星级评价样式的表单
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>问卷表单设计</title> <style> #frm{ float: left; border: 2px solid #aaa; padding:10px; border-radius: 8px; } #frm #submit{ background: url(img/11.jpg); width: 112px; height: 36px; border: none; cursor: pointer; color:#fff; font-size: 18px; font-weight: bold; float: left; clear: left; border-radius: 5px; } #frm .vote label{ float: left; width: 150px; padding:6px 0; font-size: 14px; font-weight: bold; } .score{ width: 30px; margin:0; float: left; } .vote{ float: left; clear: left; } </style> <script> function overhandle(obj){ var fnode = obj.parentNode; var imglist = fnode.getElementsByTagName('img'); for(var i=0;i<imglist.length;i++){ imglist[i].src = 'img/start0.png'; } var node = obj; var index = 0; while(node = node.previousSibling){ if(node.nodeType == 1){ index ++; } } node = obj; for(;index>=2;){ if(node.nodeType == 1){ node.src = 'img/start1.png'; index--; } node = node.previousSibling; } } function outhandle(obj){ var fnode = obj.parentNode; var list = fnode.getElementsByTagName('input'); var imglist = fnode.getElementsByTagName('img'); for(var i=0;i<imglist.length;i++){ imglist[i].src = 'img/start0.png'; } for(var i=0;i<list[0].value;i++){ imglist[i].src = 'img/start1.png'; } } function clickhandle(obj){ var fnode = obj.parentNode; var list = fnode.getElementsByTagName('input'); var node = obj; var index= 0; while(node = node.previousSibling){ if(node.nodeType == 1){ index++; } } list[0].value = index-1; } </script></head><body><form action="#" method="post" id="frm"> <div class="vote"> <label for="">服务满意度</label> <input type="hidden" value="0" name="answ1"> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> </div> <div class="vote"> <label for="">书店环境满意程度</label> <input type="hidden" value="0" name="answ2"> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> </div> <div class="vote"> <label for="">书籍质量满意度</label> <input type="hidden" value="0" name="answ3"> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> <img src="img/start0.png" alt="" class="score" onmouseover = "overhandle(this)" onmouseout = "outhandle(this)" onclick="clickhandle(this)" /> </div> <input type="submit" id="submit" value="确定提交"></form></body></html>
效果图:
代码剖析:
1.鼠标移动事件的处理:当某个img标签发生onmouseover事件时,执行overhandle()函数。该函数首先获得父节点,并将相应的所有的img的src属性设置为img/start0.png,接着所有previousSibling向前计算当前发生的onmouseover事件的是第几个标签节点(节点的nodeType属性为1的才是标签节点)。因为前两个标签节点为label和input,所以再将从第三个节点开始直到当前发生事件的节点的src属性设置为img/start1.png。
2.鼠标单击事件处理:当某个img标签发生onclick事件时,表示用户选择了当前的“星星评级”,这时执行clickhandle()函数。该函数先获得父节点下面的input标签,接着使用previousSibling属性来获得当前事件的发生标签,并将input的value属性设置为“星星评级”(即第几个img标签)。
3.鼠标移出事件处理:当某个img标签发生onmouseout事件时,这时执行outhandle()函数。该函数先获得父节点下面的input标签,因为之前必定发生了鼠标移动事件,所以img的src属性可能改变了,所以现在根据input标签的value属性的值来将src设置回正确的值。
阅读全文
0 0
- “星星评级”样式表单设计
- JQuery星星评级
- RatingBar android 自定义 评级 星星
- table表单边框样式设计
- 星星选择样式
- Windows 资源管理器的音乐文件星星评级的ID3v2标签
- 做星星评级的一个demo,转载大神的
- Web注册表单设计样式的研究
- jQuery实现星星评分样式
- 表单样式
- 表单样式
- 表单样式
- 星星
- 星星!
- 星星
- 星星
- 星星
- 星星
- git操作之ssh与https互换
- 用innerHTML插入html代码中有样式表时需注意的地方
- hibernate配置
- HDU 6162 树链剖分
- 【转】和Oracle数据库的参数有关的几个试图
- “星星评级”样式表单设计
- Java中的匿名内部类
- i++和++i
- spring中bean的生命周期
- Sublime text 3安装svn插件
- JavaWEB--POI之EXCEL操作、优化、封装详解系列(二)--导入导出helloworld(对比JXL库)
- 007_今年七夕,我用代码表白
- hdu6043 KazaQ's Socks
- c++-字符串转化为整形(atoi)