A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

柯建程
下拉列表的左右选择
  下拉列表全显示:multiple="multiple"
首先定义左下拉列表,左移一个,全左移的ID,和右下拉列表,右移一个,全右移的id
页面加载,触发点击左移 全左移,右移全右移的事件,利用appendTo进行移动
在触发双击下拉列表事件,同样利用appendTo移动

使用JQ完成表单校验
设置必填框,必填定义一个class变量,在页面加载中,获得必填元素进行遍历,然后进行失去焦点的校验,失去焦点提示是否符合要求,判断一次要清空一次要求,$(this).parent().find().remove(;)
回复 使用道具 举报
吴俊斌
使用JQuery完成下拉列表左右选择
           首先导入jq路径,在创建script标签,在标签中先定义一个页面加载事件.
1,先创建两个开关.
开关一(一次用移动一个) ,找到开关对象给他加个鼠标点击事件(click),方法里,通过选择器确定鼠标选择的对象.在使用appendTo的方法将文件添加到对应的位置.
开关二.同理,不过这次不是确定鼠标选择的对象是把所有的当前列表的所有对象选中,在添加
                  2,双击文件能实现左右移动
         一样先找到当前对象所在的列表对象加上一个双击事件,在方法里找到当前对象的选择属性.在使用appendTo添加奥对应的位置
 使用JQuery完成表单校验
首先导入jq路径,在创建script标签,在标签中先定义一个页面加载事件.
               1,先在必填选择框后加上*标识
                    先用选择器找到所有的必选框的父类parent(),直接用append的方法添加标识(不懂为啥视频要一个一个遍历,直接添加就行了)
2.进行表单效验并且给出提示
同样要找到所有要效验的文本框加上一个失去焦点事件(blur),   进来先清空提示文本框的内容,接着判断当前是哪个文本框(用选择器找到所有的必选框用is()判断是哪个),再校验就可以了.错误的添加一个样式 正确的另一个样式.在最后还可以通过链式编程在后面添加键盘抬起等等事件,方法里在调用一遍表单效验就行了(可以使用triggerHandler)
              3,提交表格效验
   可以通过判断错误样式的长度是否大于0来判断是否有错误,考虑到一个也没添加也可以提交,我们在刚开始要使用trigger()把效验的方法全都实现一遍,提高健壮性
   
回复 使用道具 举报
林恒山
JQuery下拉框展示列表内容加属性multiple="multiple".JQuery中常用的事件有获得焦点focus,是去焦点blur,下拉列表内容改变change,点击click,双击dblclick,键盘按下keydown,键盘弹起keyup,键盘按下并弹起keypress,鼠标按下mousedown,鼠标弹起mouseup,鼠标移入mouseover,鼠标移出mouseout,鼠标悬停mouseover.
还有两个事件切换:
1.JQuery对象.toggle(function(){//第一次点击},function(){//第二次点击}),toggle只能使用jquery1.9之前的版本,之后的会出问题.
2.hover,相当于mouseover和mouseout两个事件.
案例表单校验用到的筛选选择器有:find("选择器")查找后代,所有孩子的children(["选择器"]),得到父标签parent();两个事件处理:
1.trigger执行所有触发trigger触发的事件,并且包括浏览器默认的同名事件
2.triggerHandler不会触发浏览器默认的同名事件,并且只触发第一个触发事件的Jquery对象调用的事件.不能进行链式编程.
bootstrap是开发为了响应式页面的.响应式就是一个网站可以兼容多个终端(手机/电脑/pad..).使用步骤是县引入bootstrap的css和js<link rel="stylesheet" href="../css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript" src="../js/bootstrap.min.js" ></script>
注意:要先引入jquery,再引入bootstrap的js.调整设备宽度缩放比例:<meta name="viewport" content="width=device-width, initial-scale=1">.
还有bootstrap的重点栅格系统:通过class属性来设置在不同屏幕是所占的列,n表示每格占的份数
?col-lg-n                大屏                        分辨率>=1200
?col-md-n                中屏                        992<=分辨率<1200
?col-sm-n                小屏                        768<=分辨率<992px
?col-xs-n                超小屏                        分辨率<768px
回复 使用道具 举报
陈昆明:
今天进一步学习了JQ的相关内容,使用JQ完成下拉列表的左右移动案例就可以充分体会到JQ功能的强大,这主要归功于其强大的选择器,因为如果是普通的js对象,其选择功能局限性太大
在表单检验的案例中需要注意的是trigger方法与triggerHandler的区别,trigger方法在执行自身定义的所有事件后还会默认执行浏览器中具有同名的事件(这也就是说trigger方法后面
其实是可以跟上非浏览器的默认事件方法的),而triggerHandler则是只会执行自身定义的第一个事件(第一个是指代码从上至下的顺序),而且执行完之后是不会执行浏览器默认的事件的,
而且需要注意的是,不是所有的元素调用trigger方法后都会执行trigger方法内的事件A的,调用的这个元素必须要有关于事件A的方法,否则调用是错误的,另外不同于其他的事件,submit事件
只有form元素才能调用
接下来还初步学习了Bootstrap的入门知识,它的存在是为了让不同的用户终端能使用相同的页面,这主要归功于它强大的栅格系统
通过class = "row"来设置一行
通过class属性来设置在不同屏幕是所占的列,n表示每格占的份数(注意:列最多将视口分为12列)
•col-lg-n                大屏                  
•col-md-n                中屏
•col-sm-n                小屏
•col-xs-n                超小屏           
回复 使用道具 举报
许剑鸿 webDay06

进一步学了JQuery的使用,主要通过两个案例的解析与实现对知识进行学习

案例1:下拉列表的左右选择:<select> 展示列表的内容 需要加属性 multiple="multiple" , 事件:click dblclick     appendTo的使用

案例2:使用JQuery完成表单校验: find()查找后代  parent()获得父标签  
trigger/triggerHandler区别: 前者触发所有函数及浏览器事件  后者只执行第一个函数并且不会执行浏览器事件


初步接触BootStrap:开发响应式页面  响应式:网站能兼容多个终端 节约开发成本,提高开发效率

使用步骤:导入CSS及JS(按顺序导入) :      <link rel="stylesheet" href="../css/bootstrap.min.css" />
                                        <link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
                                        <script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
                                        <script type="text/javascript" src="../js/bootstrap.min.js" ></script>

根据设备宽度,调整缩放比例:        <meta name="viewport" content="width=device-width, initial-scale=1">

栅格:行 : 通过设置class属性为"row"设置为一行
     列 : 通过设置class属性为"col-(lg/md/sm/xs)-n"(0< n <=12)设置为一列 一行最多为12列 超过则换行
可以在栅格中嵌套栅格
回复 使用道具 举报
常小天
今天学习的是JQuery的进阶内容和BootStrap的入门内容。
JQuery进阶内容部分通过两个案例来进行学习。第一个案例是下拉列表的左右选择。这一案例的知识点和核心内容其实就是一个表单选择器——“:selected”,它是指下拉列表中的选中元素。除此之外的id选择器,层级选择器,appendTo方法都是昨天的学习内容,回顾一下即可。第二个案例是使用JQuery完成表达校验,这是今天的重难点。这里边需要注意的点有:
一、添加提示信息以及*号的操作,还有删除旧提示信息的操作都需要调用“.parent()”方法获取其父标签,才能调用“.append()”方法。因为这些操作虽然修改的是自身层级的内容,却都是在父标签的层次上进行的。
二、与之前不同的一点是,今天的学习中我们能够给一个标签添加多个class内容,它们之间用空格隔开。这里就要再引出另一个注意的点。就是在不同的需求中通过不同的class内容来获取对象。本例中清除旧的提示信息时需要清空整个提示内容,所以使用描述标签整体属性的“formtips”类名作为选择器,而统计表单错误信息时需要的是提示内容所表达的信息,所以使用具有标识功能的“onError”类名作为选择器。这个点的掌握需要在实际的应用中进行锻炼。
三、trigger和triggerHandler的功能和区别。这两者的功能大体上类似,它们都能对匹配的元素实施所绑定的触发事件所调用的方法。它们的区别有三点,但目前我们能够掌握的只有两点。一是前者在实现功能的时候会将属于浏览器默认事件的触发事件一并执行,而后者不会执行属于浏览器默认事件的触发事件,而只执行触发事件调用的方法。二是前者会执行所有匹配元素的触发事件并调用方法,而后者只触发jQuery对象集合中第一个元素执行方法。
回复 使用道具 举报
16weisong
今天主要学习了jq事件,切换函数,2个案例和bootstrap入门,jq部分只需掌握表单注册案例即可掌握相关知识点,bootstrap是一个制作响应式页面的框架,只要自己用boostrap搭建下前几天学的网站首页即可入门
回复 使用道具 举报
林玮
5/21JQ总结

今天是接着昨天继续学习JQ的常用事件,可能是因为比较多所以分两天来学.

首先是学了下拉列表的左右选择案例:
(注:需要注意<select>里要加,multiple属性),要想达到这个效果有两种方法:
        第一种:是使用JS(仅了解一下即可,毕竟出了一个比JS书写更为简便的JQ,但是如果有要用到JS方法的还是要转回去的.)
        第二种:是使用JQ方式;(具体如何操作我就不说了,太简单了)
至于事件就讲一个比较特殊的toggle它的作用是轮流执行多个函数,只有一个函数的时候效果就是显示和隐藏;

重点是后面的那个案例:表单效验案例;
只要能把它独立打出来,这两天的JQ你就差不多掌握了,反正我是还没打完.
因为它里面用到的事件比较全面,如:
        .each:遍历事件
        .blur:失去焦点事件
        .remove:删除元素事件
        .append:添加元素事件
        (虽然说也不算多,但是只你能打下来,基本上怎么用是个什么意思差不多都懂了,因为JQ的事件使用都差不多然后去看API也能看得懂,而不是说遇到一个不会的去查API查到了,咦这个要怎么用啊...这就尴尬了)
它里面还用到了两个经典选择器:
        find:后代选择器
        parent:父标签选择器
        (还有一个没用到的)
        chidren:子标签选择器
后来又学了一个BootStrap框架,对它的了解我其实就几句话,它的主要作用是让网站达到一个响应式开发开发的效果,它的主要核心是栅格系统.它可以给页面设计一个框架,并且能在分辨率不同的设备中运行,反正总而言之一句话:这是一个非常强大的一个框架.
回复 使用道具 举报
郑志祥Day06(java-Quare和BootStrap)
今天学习了(下拉列表的左右选择案例)JQuery的<select></select>在此案例中有使用到

知识点一;multiple=”multiple”(单词意思,并联,多重的)效果是能将下拉列表里的所有的内容全部显示出来.<select id="selectLeft" multiple="multiple" >.

知识点二 $("#addRight").click(function(){
                                        // 获得左侧被选中的option元素:
                $("#selectLeft option:selected").appendTo("#selectRight");
                                });
设置>>click(鼠标单击事件)来触动函数
"#selectLeft option:selected"获取到左边的所有的元素:被选中的.添加到右边的下拉列表

知识点三      $("#addAll").click(function(){
                                        // 获得左侧被选中的option元素:
                                        $("#selectLeft option").appendTo("#selectRight");
                                });
设置>>>click(鼠标单击事件)来触动函数
"#selectLeft option"获取到左边的所有的元素:被选中的.添加到右边的下拉列表
知识点四// 双击左侧的的某个元素,移动到右侧:
                                $("#selectRight").dblclick(function(){
                                        $("option:selected",this).appendTo("#selectLeft");
                                });
$(右边的下拉列表).dblclick(双击触动函数)
$("option:selected",this)这里面的this可以去掉,(1,2)1和2同一个意思

注意;记得引入js文件
  <script src="../js/jquery-1.11.3.min.js"></script>




案例二( 使用JQ完成表单校验)
<script>
                        // 表单校验的操作
                        $(function(){
                                // 步骤一:为必填项添加一个 *.(通过后代选择器获取到下面的所有的input 里面的 required 并遍历)
                                $("form input.required").each(function(){  //用户名 密码  确认密码
                                        // 获得他的父元素:([调用父类方法只有jq能调用]将js转换为jq在调用jq的父类,添加*红色字体与加粗)
                                        $(this).parent().append("<b class='high'> *</b>");
                                });
                               
        // 步骤二:获得所有的输入项,为输入项添加一个blur失去焦点就执行函数事件.
                $("form input").blur(function(){
                                       
                // 获得该元素的父元素:
                var $parent = $(this).parent();
                                       
                // 将原有的信息清除掉.(find("选择器"):查找后代             清除长宽,釜底抽薪)
                $parent.find(".formtips").remove();
                                       
                // 确定点击的输入项是谁? is是匹配功能
                if($(this).is("#username")){
                // 判断用户名输入的值是否为空:通过.value获取
                if(this.value == ""){
        // 向文本框后添加一个错误提示. formtips长宽样式  onError图片加背景 (查看style2)
        $parent.append("<span class='formtips onError'>用户名不能为空</span>");
                                                }else{
                // 向文本框后添加一个正确提示.
                $parent.append("<span class='formtips onSuccess'>用户名输入正确</span>");
                                                }
                                        }
                                if($(this).is("#password")){
                                // 判断用户名是否为空:
                                if(this.value == ""){
                                // 向文本框后添加一个错误提示.
                        $parent.append("<span class='formtips onError'>密码不能为空</span>");
                                                }else{
                                // 向文本框后添加一个正确提示.
                                $parent.append("<span class='formtips onSuccess'>密码输入正确</span>");
                                                }
                                        }
                                        //此处使用链式编程,键盘抬起执行函数,
                                }).keyup(function(){
                                        //将js转换为jq 调用triggerhandler方法,
事件处理有trigger 对匹配到的所有元素进行操作.另外一个是triggerHandler是对匹配到的元素进行处理只执行一次.两个单词的区别差在这里.
                                        $(this).triggerHandler("blur");
                                        //集中焦点
                                }).focus(function(){
                                        $(this).triggerHandler("blur");
                                });
                               
                                // 为表单添加一个submit提交事件.
                                $("form").submit(function(){
                                        // 执行表单中blur事件.  trigger将所有的元素检查一遍,也会导致浏览器的默认行为的执行
                                        $("form :input").trigger("blur");
                                        // 获得错误信息的长度.
                                        var errorLength = $("onError").length;
                                        if(errorLength > 0){
                                                return false;
                                        }
                                });
                        });
                       
                </script>


还学习了BootStrap, 他是HTML,css,js的框架可以开发响应式页面,响应式就是一个网站可以给多个终端使用
BootStrap主要学会引入的方法:
<link rel="stylesheet" href="../css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
注意:导入的顺序不能改变,下面的bootstrap.min.js有用到上面的jq,所以排在jq的后面.
<script type="text/javascript" src="../js/bootstrap.min.js" ></script>
使用BootStrap还需要导入:
<meta name="viewport" content="width=device-width, initial-scale=1">
栅格系统:(使用该系统可以使页面在不同使用端都可以看到,不会改变其格式之类的)
就是只需开发一个终端就可以在其他三种终端上使用(电脑,平板,手机)上使用,节约开发资源,提高效率.
通过class属性来设置在不同屏幕是所占的列,n表示每格占的份数
•col-lg-n                大屏                        分辨率>=1200    large
•col-md-n                中屏                        992<=分辨率<1200   mid
•col-sm-n                小屏                        768<=分辨率<992px      small
•col-xs-n                超小屏                        分辨率<768px     extra(特别的  ,非常的) small
回复 使用道具 举报
邵倩

案例:下拉列表的左右选择
1.要显示列表里的内容需要给<select>添加一个属性 multiple="multiple"
2.表单选择器:checked(被勾中的)   selected(被选中的)
3.a.append(b) 在a中添加b   A.appendTo(B)把A添加进B 都需要先拿到元素的父标签 再对父标签进行添加
4.事件 click和dbclick



案例:复杂点的表单校验的案例
1.JQ的查找: 查找后代.find("选择器");   查找所有子标签.children("选择器");   得到父标签.parent();
2.JQ的事件处理:  .trigger() 操作匹配到的所有元素,并且也会执行浏览器同名的默认行为

                           .triggerHandler()只操作JQ对象集合中第一个元素

JQ的事件切换
1.toggle();   点击第一下执行第一个函数,点击第二下执行第二个函数  1.9之后版本不支持
2.hover();  鼠标悬停的时候执行第一个函数,鼠标移开执行第二个函数


BootStrap 是目前很受欢迎的前端框架,它基于HTML,CSS,JavaScript
响应式页面:只需设计一套页面 就能使其在手机/pad/电脑都能被正常浏览
使设计和维护都省时省力,节约成本


使用BootStrap前需要先下载,再在HTML中引入两个css文件和两个js文件 顺序不能乱
BootStrap中的栅格系统:
行:通过class="row"来设置一行
列:.col-lg-n .col-md-n  .col-sm-n   .col-xs-n   也就是col-屏幕尺寸的相对大小-列占比值



可以在ibootstrap.cn通过可视化布局系统来设计页面(傻瓜式操作 无脑拖就完事了 像QQ空间模块排版一样哈哈哈哈哈哈哈哈哈嗝),大致设计完后可以得到(<body>部分)代码 然后粘进你的HTML里自行修改一下部分内容就ok了

回复 使用道具 举报 1 0
day06
施炎生
1.案例一: 下拉列表的左右选择
checked         选中的(针对的是单选框和复选框)
selected         选中的(下拉选)
2.toggle:给一个元素添加了单击事件,轮流执行多个函数
  hover:相当于给一个元素添加了mouseover和mouseout两个事件
3.案例二 : 使用JQuery完成表单校验
  a.find("选择器"):        查找后代
    parent():  父标签
  b.triggerHandler() 方法与 trigger()的区别:两个方法类似。不同的是triggerHandler()不会触发事件(比如选中文本)的默认行为,就可以直接执行事件内所写的方法,而且只影响第一个匹配元素。       
4.BootStrap的使用步骤:
  a.引入BootStrap的CSS 和 JS
  b.根据设备宽度,调整缩放比例       
       
回复 使用道具 举报
王清松
JQurey:
在动作触发事件,事件调用方法,方法执行相对应操作的逻辑上,学习到了一些方法以及属性的使用。

BootStrap:
作用:开发响应式页面。理解为适应性页面,看窗口分辨率的情况去调整页面布局,达到美观高可视化的目的
栅格系统:学习了栅格系统,用于布局页面
回复 使用道具 举报
曾耀峰

今天总结的内容分为两部分:

   一、总结JS课程案例
   二、初步学习BootStrap

  

一、课程案例:
   
    今天的课程案例比较少,JQ有两个案例,
   
    1.案例一:使用JQuery完成下拉列表的左右选择
      有以下两个知识点:
      
      1).表单对象的选择器过滤功能: 常见的有:enabled(标签能用)、disabled(标签组件不能用)、checked(多选框被选中)、selected(下拉列表项被选中)等四个属性。使用格式:$("#selectLeft option:selected")  表示:选择框左边的被选中的选项   
      2).append()方法和appendTo()方法的理解:
      a.append(b);将b元素添加到a元素里面(或者说a标签添加子标签b)
      a.appendTo(b):把a元素添加到b元素里面(或者说b标签添加子标签a)

      3).理解完上面的两个知识点,试着将案例需求描述出来:
      
      (1).案例需求:
      
         在一个手机分类栏里面,有左侧"已有商品"和右侧"未有商品"两个多选框:现在有如下需求:
         [1].双击左侧"已有商品"多选框的选项,能将被双击的选项添加到右侧"未有商品"多选框
         [2].单击">>"或者"<<"能将选中的商品项移动到另外一个多选框
         [3].单击">>>"或者"<<<"能够将多选框的所有选项移动到另外一个多选框中

      (2).技术实现:

        1.处理添加到右侧">>"的单击事件:设置id为"#addRight"
         [1].获取该标签并绑定单击事件:$("addRight").click(function(){});              
         [2].在绑定的单击触发函数里,获取被选中的选项,添加到另外一个选择框;
             function()
             {$("#selectLeft option:selected").appendTo("#selectRight")}
      
        2.处理添加所有选项到右侧选择框的标签">>>" 的单击事件:设置id为"#addAllToRight":
         [1].获取该标签并绑定单击事件:$("#addAllToRight").click(function()){}
         [2].获取左侧选择框的所有选项<option>:添加到另外一个选择框
             function()
             {$("#selectLeft options").appendTo("#selectRight")}
        
        3.双击左侧选择框的某个元素,添加到右侧选择框中:
          $("#selectLeft").dblClick(function(){});
          function(){
      
            $("option:selected",this).appendTo("#slelected");//this表示的是触发单击的主体#selectLeft选择框。
          }
      
        右侧的处理同样如上。不再描述。这个案例重点在于对append()和appendTo()两个方法的理解
      
      案例2:表单即时验证JQ版本:

        1.使用JQ版做表单验证,除了有比较精致的提示效果以外,还运用了输入一个字母就验证的即时验证。这个效果是给输入信息的选项框绑定keyUp和focus事件。在keyUp绑定的触发函数里,执行triggerHandler("blur");这个的意思是当用户输入一个字母以后,手从按键抬起的时候,就执行一次该这个输入框绑定的失去焦点事件blur。记住,只执行一次

        2.$("form :input").trigger("blur"):执行整个输入框的所有失去焦点的事件
          $("form :input").triggerHandler("blur"):只执行第一个输入框的失去焦点事件。其他的不执行
        
        3.案例步骤:
        [1].获取所有必填项的输入框,绑定失去焦点事件:$("form input.required").blur();
           对这个事件做以下处理:
           (1).获取父结点:var $parent=$(this).parent();
          (2).预先对原来存在的提示信息作清除(要先找到信息提示):$parent.find("formTips").remove;
           (3).判断是哪个输入框:if($(this).is("#username"))
           (4).根据验证规则的判断条件:验证正确时:$parent().append("<span>提示信息</span>");
           按照以上步骤可以判定所有输入框事件
        [2].处理提交注册表单的细节问题:
           1.当一开始什么都没有输入,直接点击注册按钮,表单会直接被提交。
           2.当所有信息填完后,要判断没有错误信息才能提交
           
           针对上面两点,都发生在表达被提交的时候,所以
           (1).给表单添加一个提交的事件:$("form").submit(function(){});
           (2).表单的触发函数里面,预先执行一次所有输入框的失焦事件:$("form:input").trangger("blur");解决第1点问题
           (3).获取每个表单错误信息长度:$(".onError")
           (4).根据信息判断是否提交
   

二、BootStrap

    来自Twitter的前端框架,主要解决不同设备的屏幕适配网站问题。解决了传统针对不同设备,因为显示屏幕的不同而制作了多个版本的网站,
    以下步骤是使用BootStrap解决屏幕问题的步骤

    1.使用BootStrap:

     [1]引入BootStrap的核心css文件:bootstrap.min.css
     [2]引入BootStrap的主题css文件:bootstrap.theme.css
     [3]引入js库(注意,js库要放在bootstraps的js文件的前面):jquery.js
     [4]引入BootStrap的js库:bootstrap.js

    2.加入一个meta文件设置最小屏幕宽度:

     <meta name="viewport" content="width=device-width,initial-scale=1">

    3.容器选择:

      在想布局之前,先依据需求选择一个套在最外层的布局class。有如下两个:
      1). .container:用于固定宽度并支持响应式布局
         <div class ="container">
         </div>
      2). .containter-fluid:100%宽度,占据所有视口
       <div class ="container-fluid">
         </div>

    4.理解栅格系统:

      BS的栅格系统目前学了两方面的知识:
      比如:col-lg-n:
      lg表示大屏幕
      n表示分成几块,所有的n加上要等于12
      [1]屏幕类型有四种:
      lg:large 巨大的(>1170px):大于1170px的屏幕尺寸:电脑端
      md:middle 中等的(970~1170px):中等电脑端
      sm:small 小的(750~970px):平板电脑
      xm:x-samll 超小的(0~750px):手机客户端
      
回复 使用道具 举报
叶凌青
今天主要对上次的jq的补充
学了JQ筛选-查找
主要学习了
find("选择器"):查找后代
parent():父标签
还学习了2个jq处理事件
trigger
triggerHandler

然后学习了新的知识
BootStrap
他的作用主要是作用 : 开发响应式的页面
响应式:就是一个网站能够兼容多个终端
他的优点是:节约开发成本,提高开发效率
然后还学习了使用步骤
引入BootStrap的CSS 和 JS
<link rel="stylesheet" href="../css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript" src="../js/bootstrap.min.js" ></script>

根据设备宽度,调整缩放比例
<meta name="viewport" content="width=device-width, initial-scale=1">


最重要的是栅格系统
通过class = "row"来设置一行
通过class属性来设置在不同屏幕是所占的列,n表示每格占的份数
•col-lg-n                大屏                        分辨率>=1200
•col-md-n                中屏                        992<=分辨率<1200
•col-sm-n                小屏                        768<=分辨率<992px
•col-xs-n                超小屏                        分辨率<768px

回复 使用道具 举报
吴鹏

总结:

关于更多的一些jQuery事件和方法的补充,以及对前面案例的完善:

------------------------------------------------------------

jq中的常用的事件:

focus :当调用方法的对象取得焦点时,执行内部定义的函数;
blur :当调用方法的对象失去焦点时,执行内部定义的函数;
change :此方法与<select></select>配合使用,当select里的option发生改变时,执行方法内部定义的函数;
click :点击事件,用了很多次了,无需再说;
dblclick :双击事件,用了很多次了,无需再说;
keydown :键盘按键按下时触发;
keyup :键盘按键弹起时触发;
keypress :键盘按键按下并弹起时触发;
mousedown :鼠标按下时触发;
mouseup :鼠标按下后弹起时触发;
mousemove :鼠标移进调用对象时触发;
mouseout :鼠标移出调用对象时触发;
mouseover :鼠标停发放在调用对象上时触发;

这里特别的提两个切换事件,目前用来了解,因为用的机会不多,
一个是toggle(),一个是hover();
jq对象.toggle(fn1,fn2,...),比较容易理解的格式如下:
jq对象.toggle(function() {
    函数体1;   
},function() {
    函数体2;
},...)
当jq对象第一次触发toggle时,执行函数体1,第二次触发执行函数体2,...直至循环,
要注意的是,toggle()在1.9版本以后不支持;

jq对象.hover(fn1,fn2),这个相当于mouseover()和mouseout的结合;
jq对hover(function() {
    函数体1;   
},function() {
    函数体2;
},...)
当鼠标悬停在jq对象时执行函数体1,移开jq对象时执行函数体2;

jq对象.find("选择器") :查找jq对象后代中与"选择器"匹配的元素,
这个方法是用来遍历元素,

jq对象.children(),选择出jq对象的所有的子代元素,不包含jq对象子代以后的次次级元素;

jq对象.parnet(),筛选出jq对象的父类元素,

jq对象的处理:
jq对象.trigger(type,[data]):
type:一个事件对象或者要触发的事件类型;data:传递给事件处理函数的附加参数;
在每一个匹配的元素上触发某类事件;

jq对象.triggerHander(type,[data]):
1 不会触发浏览器默认事件,默认事件比如点击,右键弹出菜单等,因此即使括号里面放入的是("click"),
   它执行的只是click事件里定义的函数体内容;

2 只触发jQuery对象集合中第一个元素的事件处理函数,

3 这个方法的返回的是事件处理函数的返回值,而不是据有可链性的jQuery对象。此外,如果最开始的jQuery对象集合为空,则这个方法返回 undefined 。

举个例子:
<body>
<input type="button" id="tr" value="这个是trigger()方法">
<input type="button" id="trh" value="这个是triggerHander()方法">
<br/>
<input type="text">
<input type="text">

<script>
$("#tr").click(function() {
    $("input [type='button']").trigger("focus");
});
$("#trh").click(function() {
    $("input [type='button']").triggerhandler("focus");
});
$("input [type='text']").focus(function() {
    $("body").append("<p>这个是focus事件触发后要执行的函数体</p>");
});
</script>
</body>
上面的代码,定义了两个按钮,分别会执行trigger方法和triggerhandler方法,
当点击trigger按钮时,因trigger事件的对象"input"有两个,会执行两此focus事件,焦点会在第二个文本框中;
当点击triggerhandler后,虽然事件对象有两个,但是只会对第一个对象执行,并且只执行事件的函数体,并不会
触发focus事件,所以文本框不会取得焦点;

-------------------------------------------------------

bootstrap的初步介绍:
用来开发响应式页面;
响应式页面意思是说根据设备的不同,网页页面内容可以"有选择"的展示原本的内容,此框架主要是针对移动端;
和自适应页面不同,响应式网页是根据像素值来"活动"展示页面,自适应内容是不会更改的;
响应式页面可以节约开发成本,开发一套后,不论是pc端还是移动端都能很好的支持;

创建响应式页面时,要线引入css样式和bootstrap的js库;
<link rel="stylesheet" href="../css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript" src="../js/bootstrap.min.js" ></script>

在head的meta标签里声明:
<meta name="viewport" content="width=device-width, initial-scale=1">

栅格系统:
将页面的每一行都分成十二个列,
行的定义:通过class = "row"来设置一行,如果在父级标签中定义class=container-fluid则是占据页面宽度的100%;
列的设置:每个行都可以视为一个视口,通过class属性值来设置,总列数必须为12行;

通过class属性来设置在不同屏幕是所占的列,n表示每格占的份数
•col-lg-n        大屏            分辨率>=1200
•col-md-n        中屏            992<=分辨率<1200
•col-sm-n        小屏            768<=分辨率<992px
•col-xs-n        超小屏            分辨率<768px


----------------------------------------------------------

案例:下拉列表的左右选择:

分析,首先要有两个下拉的菜单,两个菜单分别都有一些内容;在下拉菜单的厦门有两个按钮,当选中某个具体的内容
时,点击按钮就可以实现该内容的转移;左边的下拉列表id值为selectLeft,右边下拉列表的id值为selectRight,分别在
两者的下面创建两个按钮,两个按钮分别为移动选定的目标到另外一列和移动全部的目标到另外一列,左边按钮可用
id名为selectLTR和selectAllLTR,右边的按钮可用id名为selectRTL和selectAllRTL;然后定义按钮触发点击事件时要
执行的函数内容;下列代码即为实现的代码内容:

左边列表的id值:selectLeft;右边列表的id值:selectRight;左边单个转移按钮的id值:selectLTR,全部转移id值selectAllLTR;
右边单个转移按钮的id值:selectRTL,全部转移id值selectAllRTL;

<script>
    $(function() {
        $("#selectLTR").click(function(){
        //左边单个转移按钮点击后;
            $("#selectLeft option:selected").appendTo("#selectRight");
            //获得左边列表中被选中的内容,添加到右边列表中;
        });
        $("#addAllLTR").click(function(){
            $("#selectLeft option").appendTo("#selectRight");
        });
        $("#addRTL").click(function(){
            $("#selectRight option:selected").appendTo("#selectLeft");
        });
        $("#addAllRTL").click(function(){
            $("#selectRight option").appendTo("#selectLeft");
        });
        $("#selectLeft option").dblclick(function(){
            $("option:selected").appendTo("#selectRight");
        });
        $("#selectRight option").dblclick(function(){
            $("option:selected").appendTo("#selectLeft");
        });
    });
</script>

--------------------------------------------------------------------------------

使用BootStrap制作一个响应式页面

代码如下:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../css/bootstrap.min.css" />
<link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
<script type="text/javascript" src="../js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript" src="../js/bootstrap.min.js" ></script>
//假设css文件和js文件都在如上路径下;

</head>
<body>
<div class="container-fluid">
    <div class="row">
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h1>111</h1>
            <p>111-1</p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h1>222</h1>
            <p>222-2</p>
        </div>
        <div class="col-md-4 col-sm-12 col-xs-12">
            <h1>333</h1>
            <p>333-3</p>
        </div>
    </div>
<div>
</body>


在上面代码中,<div class="container-fluid">为当前视口占据屏幕像素的100%;
<div class="row">为创建一行,
<div class="col-md-4 col-sm-6 col-xs-12">,
<div class="col-md-4 col-sm-6 col-xs-12">,
<div class="col-md-4 col-sm-12 col-xs-12">,
以上三个语句联系起来看,即为:中等像素下三个<div>在一行显示;小像素下前两个
<div>同一行显示,第三个<div>一行显示;极小像素下,三个分别在一行显示;


回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马