本文实例讲述了jQuery实现的选择商品飞入文本框动画效果。分享给大家供大家参考,具体如下:
<!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\">
<head>
<title></title>
<script src=\"jquery-1.7.2.min.js\" type=\"text/javascript\"></script>
<script>
$(function() {
initProListClick();
});
function initProListClick() {
var brandUlObj = $(\'#brandListForOperate li\');
brandUlObj.unbind(\'click\').on(\'click\', function () {
var thisLiObj = $(this);
//获取商品的值和名称
var thisProValue = thisLiObj.find(\'input\').val(),
thisProName = thisLiObj.find(\'.brand-text\').text();
//调用动画效果方法
moveProEffect(thisLiObj, thisProValue, thisProName);
brandUlObj.find(\'input\').attr({ \'checked\': false });
brandUlObj.not(thisLiObj).removeClass(\'brand-selected\');
if (thisLiObj.hasClass(\'brand-selected\')) {
thisLiObj.find(\'input\').attr({ \'checked\': true });
// thisLiObj.removeClass(\'brand-selected\');
// thisLiObj.find(\'input\').attr({\'checked\':false});
} else {
thisLiObj.addClass(\'brand-selected\');
thisLiObj.find(\'input\').attr({ \'checked\': true });
}
});
}
//定义选择商品一共飞入的效果
function moveProEffect(obj, brandVal, brandName) {
//获取每一个LI标签的left top距离
var divTop = $(obj).offset().top;
var divLeft = $(obj).offset().left;
//定义移动效果的div,并将点击的LI中的html内容放入此div中
var thisEffectObj = $(\'#proEffectPanel\');
thisEffectObj.html(obj.html()).find(\'input\').attr({ \"checked\": true });
//初始化定义移动效果的div样式
$(thisEffectObj).css({ \"position\": \"static\", \"display\": \"none\", \"z-index\": \"auto\", \"left\": \"auto\", \"top\": \"auto\", \"opacity\": \"1\", \"border-radius\": \"0px\" });
//移动过程中div的样式
$(thisEffectObj).css({ \"position\": \"absolute\", \"display\": \"block\", \"z-index\": \"500\", \"left\": divLeft + \"px\", \"top\": divTop + \"px\", \"border-radius\": \"4px\" });
$(thisEffectObj).animate({
\"left\": ($(\"#txtProName\").offset().left - $(\"#txtProName\").width()+165) + \"px\",
\"top\": ($(document).scrollTop()) + \"px\",
\"width\": \"190px\",
\"height\": \"30px\"
}, 500, function () {
$(thisEffectObj).animate({
\"left\": ($(\"#txtProName\").offset().left -7) + \"px\",
\"top\": ($(\"#txtProName\").offset().top-5) + \"px\"
}, 500, function () {
$(\'#txtProName\').val(brandName);
}).fadeTo(0, 0.1).hide(0);
});
}
</script>
</head>
<body>
<style>
html,body{font-size: 12px;color: #696969;font-family: \'Microsoft YaHei\';}
.txt-main { height: 30px; line-height: 30px; border: 1px solid #c3c3c3; border-radius: 4px; padding: 0 4px; width: 180px; background: #fff url(image/form/form-input-txt-bg.png) repeat-x; }
.txt-main:focus { color: #2a6894; border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
.pro-list-panel{ width: 330px;overflow: hidden;border: 1px solid #f3f3f3;padding-bottom: 10px;float: left;margin-left: 10px;}
.pro-list-main{list-style-type: none;overflow: hidden;padding: 0;margin: 0;}
.pro-list-main li, #proEffectPanel { border: 1px solid #95b8e7; width: 147px; overflow: hidden; float: left; margin-left: 5px; margin-top: 5px; height: 30px; line-height: 30px; }
.pro-list-main li div, #proEffectPanel div { float: left; height: 30px; line-height: 30px; }
.pro-list-main li div.brand-chk, #proEffectPanel div.brand-chk { width: 12px; padding: 5px 6px 0 5px; }
.pro-list-main li div.brand-text, #proEffectPanel div.brand-text { width: 124px; }
.pro-list-main li:hover, .pro-list-main li.brand-selected, #proEffectPanel { background-color: #ceebf4; }
</style>
<div class=\"pro-list-panel\">
<h2> 选择你的商品:</h2>
<ul class=\"pro-list-main\" id=\"brandListForOperate\">
<li title=\"康师傅\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox1\" value=\"1\" /></div>
<div class=\"brand-text\">康师傅</div>
</li>
<li title=\"鸿星尔克\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox2\" value=\"2\" /></div>
<div class=\"brand-text\">鸿星尔克</div>
</li>
<li title=\"程辉\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox3\" value=\"2\" /></div>
<div class=\"brand-text\">程辉</div>
</li>
<li title=\"士力架\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox4\" value=\"2\" /></div>
<div class=\"brand-text\">士力架</div>
</li>
<li title=\"三笑\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox5\" value=\"2\" /></div>
<div class=\"brand-text\">三笑</div>
</li>
<li title=\"椰牛\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox6\" value=\"2\" /></div>
<div class=\"brand-text\">椰牛</div>
</li>
<li title=\"飞科\">
<div class=\"brand-chk\"><input type=\"checkbox\" id=\"Checkbox7\" value=\"2\" /></div>
<div class=\"brand-text\">飞科</div>
</li>
</ul>
<div id=\"proEffectPanel\" style=\"display: none;\">
</div>
</div>
<div class=\"pro-list-panel\">
<h2> 你选择的商品·:</h2>
<input type=\"text\" name=\"txtProName\" value=\"\" id=\"txtProName\" class=\"txt-main\" />
</div>
</body>
</html>
运行效果截图如下:
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》、《jQuery form操作技巧汇总》、《jQuery操作json数据技巧汇总》、《jQuery扩展技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
本文地址:https://www.stayed.cn/item/13220
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我