jQuery实现的选择商品飞入文本框动画效果完整实例


Posted in Javascript onAugust 10, 2016

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
Oct 18 Javascript
json2.js的初步学习与了解
Oct 06 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
chrome不支持form.submit的解决方案
Apr 28 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
Dec 01 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
最棒的Angular2表格控件
Aug 10 #Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 #Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 #Javascript
基于js中的原型、继承的一些想法
Aug 10 #Javascript
新入门node.js必须要知道的概念(必看篇)
Aug 10 #Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 #Javascript
jquery实现拖动效果
Aug 10 #Javascript
You might like
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
document.all与WEB标准
2020/05/13 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
利用Python实现Windows定时关机功能
2017/03/21 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
python爬取微信公众号文章
2018/08/31 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
深入理解Django-Signals信号量
2019/02/19 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
司马光教学反思
2014/02/01 职场文书
一帮一活动总结
2014/05/08 职场文书
5s标语大全
2014/06/23 职场文书
公务员政审个人总结
2015/02/12 职场文书
个人求职自荐信范文
2015/03/06 职场文书
面试通知邮件
2015/04/20 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android