前面所说的class html元素标签的写法也要有层次性, 这个层次性其实也就是常说的 css类写法要有一个"命名空间, 名字空间" "namespace"

在多个div轮播的情况下, 在父容器div下, 都设置成ul 或 ol其实都是可以的, 只是为了在写css代码的时候,为了便于引用

好区别, 所以把一种div写成ul, 另一种写成ol.

关于布局的选择考虑 和position-float的选择?

在元素的div的布局上, 你可以有三种选择: 自然的文档流排列, position:absolute, 和float

这就要根据你的布局效果 动画的表现方式 以及 jquery在实现上是否方便, 来选择了.

比如: div轮播,

  • 你选择自然流, 那么动画的路径和位置难以确定,
  • 你选择float, 由于float元素是浮动的, 但是多个float是依次排列的, 后面的元素要想跑到前面去,似乎是不可能的,要被"卡住"
  • 所以, 在实际的这种 轮播 动画 的应用中, 使用position:absolute绝对定位的是比较常用的, 因为: 一是各个元素之间相互不会发生 排版的干扰, 相互之间没有关系; 二是 jquery在控制动画的时候, 也比较方便, 直接控制css样式中的 left, top等属性就可以了.

dw本身不能算内置浏览器,只是代码和设计视图, 要看测试页面还是在外部浏览器中查看。

只要出现了absolute定位, 随时都要考虑到随后的文档流被脱离了文档流的 div 所覆盖的问题。

div、p、span、li几乎所有的html容器中的内容, 总是从上向下, 从左向右的显示, 因此:

  1. 容器中的内容,如果指定了容器的宽高大于其中的内容时, 内容不会自动的在 水平和垂直方向上居中的, 总是默认的 靠上靠左
  2. 如果超出了div的容器范围,被隐藏的总是内容的右边、 下边。

边距的设置:

一般就以5px, 10px, 20px为梯度进行设置... 一般方块形状, 就设置成正方形, 即宽度和高度相等。

Dreamwaver有强大的" 应用源代码格式" , 可是, 只能应用两种代码格式: 一是html标签, 另一个是css, 不能用于php代码格式,

但这对前端足够了.

DW 也有代码提示功能 ctrl+H, 可以针对js, jquery,php等的提示, 很强大.

要正确地 初始化 多个平行 对象的 初始状态?

  • 首先定义 表现为 "当前的" 特殊的 不同的那个对象所 添加/具有的类样式, 一般就用 .current, .focus
  • 然后, 看初始状态时, 呈现给用户的是哪个对象, 就让那个对象 具有 .current/focus等样式类.
  • 其他对象的类样式的变化, 就要根据鼠标点击时的jquery脚本变化了.

一个很重要的问题: 写当前类 .current的时候, 样式表的优先级!!!

  • 对同一个元素可以使用多个css样式, 即css样式具有叠加性;
  • 但是, 这就引入了一个 css样式的 "冲突性" 问题: 因为作用于同一个元素对象的多个css样式可能都规定了相同的css样式名但是他们的值却不相同, 那么这个时候, 该应用哪一个css的样式呢? 这个就叫冲突, 也可以叫争夺, 竞争..
  • 竞争方法就是:
  1. ==================================================================
  2. 1. 确定三种选择器的权重: html标签的权重=1, class=10, id的权重=100
  3. 2. 统计每个css样式选择器的权重, 分别把各类选择器的权重统计起来, 然后相加: 即把该样式选择器中的所有的标签的权重 + 所有的类的权重 + 所有的id的权重
  4. 3. 统计权重的时候, 不要管空格, 只要有一个(选择器), 就算一个, 就加一个
  5. 4. 权重高的css样式, 被优先使用
  6. 5. 权重相同的css样式选择器, 按照后面的样式 覆盖前面的样式来决定
  7. ==================================================================
  8. 6. 因此, 在写类似 div > ol > li 中的.current, .focus等样式时, 就不能只写一个 光光的 .current {....}, 这时,虽然当前的li确实可以用得到这个.current, 但是由于它的css权重更低, 所以跟前面.class ol li相冲突的样式就不起作用了! 这时, 要写成: .class ol .current {....} 这样.current中的样式 .class ol li中相冲突的样式才会被 优先使用!
  9. 7. 写轮播器的时候, 当前 "数字选择指示器" <ol> <li> 5 </li></ol> 的类 .current的具体 样式, 不能直接写到元素中, 要写成 .current样式class 方式, 因为这个 .current 类样式要通过js 分别用到其余几个li元素上.
  10. 8. 所以, 这也是前面所说的, css样式的时候, 最好也要遵循 "层次性" 的道理. 不仅仅只是层次清晰, 更重要的是, 能确保样式的能够得到 有效使用. 这种方法, 也可以用来 "层次性" "层级选择器" 代替 额外的 classid.
  11. 9. 在写层次的时候, **对最后一级选择器, 通常只在" 标签选择器/类样式/id选择器"中, 只选择写一样就好了. 也就是说, class, id只写到它们的父元素那一级就好了, **不要写多:
  12. /* 下面的css选择器的权重是: .all=10, ol=1 li=1, 所以总的权重是: 10+1+1=12 */
  13. .all ol li {
  14. float: left;
  15. border: 1px solid #ccc;
  16. width: 20px;
  17. height: 20px;
  18. text-align: center;
  19. line-height: 20px;
  20. margin-left:10px;
  21. cursor: pointer;
  22. }
  23. /* 下面的css选择器的权重是: .all=10, ol=1 .current=10, 所以总的权重是: 10+1+10= 21 */
  24. .all ol .current {
  25. font-weight: bold;
  26. font-size: 2em;
  27. color: red;
  28. width: 30px;
  29. height: 30px;
  30. border: 1px solid blue; // 这里的高度/宽度/边框就跟上面的相冲突了, 由于它的权重大,所以才能应用这个
  31. line-height: 30px; // 否则, 如果只写 .current, 它的权重为10, 小于12, 就不能使li的盒子变大!
  32. }
  33. 10. 写.current时, 写到.all ol就可以了, 不要写成: .all ol li.current. 因为后一种方式的写法有两个问题:
  34. 一是 繁琐, 增加了无谓的冗余代码
  35. 二是, 容易出错, 这里li和.current之间还不能有空格, 否则就表示 祖先/子孙之间的包含关系, 很明显, li下没有.current的子元素了.

当两种li 盒子的高度不同时, 要对它们的 margin 进行调整, 使他们的底线在同一水平线上,

就是要使他们的 margin-top(或者margin-bottom)的值要不同:

.all ol li {

...

margin-top: 10px;

}

.all ol .current {

...

margin-top: 0;

}

// 两个都要设, 不能只设置其中一个.

在jqurey脚本中的 li 中, 各元素的 .current类的切换方法?

  1. 可以用 li 的 attr方法, 也可以用 addClass/ removeClass方法来实现
  2. 两者的区别是: attr只能用一种类, add/removeClass可以有多个类.
  3. 实际上, attr上也可以应用其他不变的, 公用的类样式, 两者的效果基本上差不多.
  4. 但通常还是 用 attr方法来控制 .current类样式的添加和消除

jquery的事件

  1. 为了与原生的javascript相区别, 所有的 jquery 事件都不用 on, 也不用 "驼峰"大小写
  2. 合成事件 hover:
  1. 针对使用频繁的onmouseover,onmouseoutjQuery使用了 "合成事件" 的方法:
  2. hover(enter,leave)方法//模拟光标悬停事件,光标移动到 元素上触发enter函数,移出元素时触发leave函数。
  3. <script type="text/javascript">
  4. $(function(){
  5. $("#source").hover(function(){
  6. $("#pointer").text("移入光标");},function(){
  7. $("#pointer").text("移出光标");});
  8. })
  9. </script>

jquery对index的操作?

有三种方式:

get([index]); //返回的是dom元素/dom集合

:eq(index) :gt(index) :lt(index) // 通过选择器来操作 就有大于/小于/等于

eq(index) // 通过过滤器,就只有一种 : "等于".

jquery的组成:

  • 核心
  • 属性 (attr removeAttr/ addClass removeClas/ html text val)
  • css (通用的css/ 特别拿出来的 位置position , 尺寸 height, innerHeight, outerHeight())
  • 选择器
  • 过滤筛选器
  • ajax
  • 效果动画
  • 事件 等等

jquery的html text val方法?

  1. 应用对象 html和text方法通常应用于 div p等标签, 而val通常只用在input select等表单元素上
  2. 返回结果不同:

    html返回的是整个 被包含 的标签

    text 返回的 只是 被包含的 文字/文本 内容

    val 返回的是input/select的value 属性值
  3. 对选择器集合的操作结果不同:

    html始终 返回匹配集合中 的 "第一个" 对象的 html标签

    val 也只返回第一个匹配元素的 val属性值 .

    text 会返回 所有集合中 所有匹配元素 的文字 "之和" . 有的换行有的不换行...

jquery的attr, css, add/removeClass

  1. attr是操作元素的" 属性" , 当然可以用来设置元素的class类, 这个是通过更改 "class"这个属性来实现的, 它是一个覆盖过程. 重要的是, attr不仅可以用来设置 class 类样式, 主要还是设置其他属性, 如src, href等等

  2. css是一种设置 "行内样式" 的方法, 更直接. 比如要直接操作元素的 某个style样式, 如width, height, z-index时,

    你不能用attr, 因为这个不是属性, 也不能用addClass等, 所以就只能用css!

  3. addClass是增加/删除/切换类样式的方法, 它需要预先设置一个类. 这个主要是用于这个类是动态的增加/

    或删除, "(不会覆盖原来的已经设置的类)" 如常见的div ul 轮播

三种都可以, 看你的需求而定, 各有各的用途! 应该不会有混淆!

最重要的 z-index 如何动态修改?

在jquery中, 以此播放div时 , 与文字/数字 index对应的 div图片的 z-index要设为比其他 同级 div的要大, 但是它又不能是一个固定的数值, 因为下一次播放另一张div时, 它的值也要变为最大, 但是, 不同div的z-index是不能相同的, 所以这个最大的z-index 必须是动态的, 而且是递增的, 所以就用一个变量 z++来表示.

切换动画的先后动作方式?

一般就是 要求 ####你消失的时候是一下子就不见了, 而出现的时候是逐渐出现的.

  1. $uli.css('left', '+500px');
  2. $uli.stop(true,false).animate({'left': '0'},300);
  3. // css 和 animate的内部实现基本上是一样的, 区别只是一个是静态的css, 一个是动态的css变化.
  4. // 第一行的 div消失, 是直接使用的 静态css变化.
  5. // 第二行的 div出现, 是使用的 动态 animate css变化.

浮动导致的父容器高度塌陷指什么?为什么会产生?有几种解决方法

当一个浮动元素的父容器未设置高度,其中元素浮动后, 会脱离文档流,使得父容器无法计算浮动元素的高度,导致父容器高度塌陷。

解决方法有:

  1. 1. 单独给父容器设置一个固定高度。
  2. 2. 使父容器触发BFC,触发后浮动元素也会计算高度,从而撑开父容器高度。触发方法可以设置:float,overflow,inlink-block;display:table-cell
  3. 3. 在浮动元素后增加一个"为了布局而存在的" 空的div, 设置这个空的div css样式: clear: both;
  4. 4. 给父容器设置一个伪类
  5. div:after{
  6. content:"";
  7. display:block;
  8. clear:both;
  9. }

关于z-index的应用问题?

  1. Z-index属性只能工作于那些被定义了position属性(而不管是定义的 relative还是absolute. fixed)的元素中。这并足够的重视,尤其是对于那些新手。

  2. z-index 只对 "同级"的 兄弟元素有效, 对于其 父级容器则无效: (每一个定位元素都归属于一个stacking context, 也就是说, 它只在它所在的 "堆叠上下文"中有效, 在更高一级的 stacking context中无效! )

    这就要求:

    • 在书写z-index的时候, 只在同级元素之间写, 不要在父元素上写z-index

    • 子元素的z-index 并不会对父级的元素有效

      即: 假设 尽管子元素的z-index为100, 而它们的父容器的z-index为1,

      而跟他的父容器平级的 其他元素的z-index 为2, 那么 其他元素仍然在父容器及其所有的字元素的上面!

最后的完成代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>pictures display</title>
  6. <style type="text/css">
  7. * {
  8. list-style:none;
  9. }
  10. .all {
  11. width: 500px;
  12. height: 300px;
  13. overflow: hidden;
  14. position: relative;
  15. margin: 30px auto;
  16. }
  17. .all ul {
  18. position: relative;
  19. z-index: 1;
  20. }
  21. .all ul li {
  22. position: absolute;
  23. }
  24. .all ol {
  25. position: absolute;
  26. z-index: 2;
  27. right: 10px;
  28. bottom: 10px;
  29. }
  30. .all ol li {
  31. float: left;
  32. margin-left:10px;
  33. background-color: #666; /* 像这种数字边框 都要求有 背景底色的*/
  34. border: 1px solid #ccc;
  35. width: 20px;
  36. height: 20px;
  37. text-align: center;
  38. line-height: 20px;
  39. cursor: pointer;
  40. margin-top: 10px;
  41. }
  42. .all ol .current {
  43. font-weight: bold;
  44. font-size: 1.2em;
  45. color: red;
  46. width: 30px;
  47. height: 30px;
  48. line-height: 30px;
  49. border: 1px solid #F93;
  50. margin-top: 0;
  51. }
  52. </style>
  53. <script type="text/javascript" src="js/jquery-1.10.2.js"></script>
  54. <script type="text/javascript">
  55. $(function(){
  56. var z=10;
  57. $('ol li').mouseover(function(){
  58. var idx = $(this).index();
  59. var $uli = $('ul li').eq(idx);
  60. $(this).attr('class', 'current');
  61. $(this).siblings().attr('class','');
  62. z++;
  63. $uli.css('z-index', z);
  64. $uli.css('left', '500px');
  65. $uli.animate({'left': '0'},500);
  66. });
  67. });
  68. </script>
  69. </head>
  70. <body>
  71. <div class="all">
  72. <ul>
  73. <li><img src="img/red.jpg" width="500" height="300"/>1</li>
  74. <li><img src="img/orange.jpg" width="500" height="300" />2</li>
  75. <li><img src="img/green.jpg" width="500" height="300" />3</li>
  76. <li><img src="img/blue.jpg" width="500" height="300" />4</li>
  77. <li><img src="img/purple.jpg" width="500" height="300" />5</li>
  78. </ul>
  79. <ol>
  80. <li>1</li>
  81. <li>2</li>
  82. <li>3</li>
  83. <li>4</li>
  84. <li class="current">5</li>
  85. </ol>
  86. </div>
  87. </body>
  88. </html>

用jquery写循环播放div -2的更多相关文章

  1. 用jquery写循环播放div的相关笔记 珍贵的总结 -1

    用jquery写循环播放div line-height应用的元素的 层次? line-heig字ht, 叫行高, 仅仅是指 文/文本, 而不管图片. line-height是容器中 文本行 与 文本行 ...

  2. jquery写简单的div切换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据

    jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...

  4. js中return false; jquery中需要这样写:return false(); Jquery 中循环 each的用法 for循环

    js中return false; jquery中需要这样写:return false(); Jquery 中循环 each的用法 $(".progressName").each(f ...

  5. 用jQuery写的轮播图

    效果图: GitHub地址:https://github.com/123456abcdefg/Javascript 大家可以下载源码查看. 与前一篇写的轮播图实现的效果一致,这个是用jQuery写的, ...

  6. JavaScript中让Html页面中循环播放文字

    JavaScript中让Html页面中循环播放文字 <html> <head> <meta http-equiv="Content-Type" con ...

  7. 为jQuery写插件

    很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider. 如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成sl ...

  8. iOS scrollview循环播放加缩放

    前些日子一直在研究3d的框架没有时间写博客,不过最后需求改了,也没研究出个啥.这段时间出了新的需求,需要循环播放图片,并且滑动的时候中间的图片有缩放的效果.刚开始想在网上搜索,不过并没有找到合适的de ...

  9. JQuery在循环中绑定事件的问题详解

    JQuery在循环中绑定事件的问题详解 有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说 ? 1 2 3 <input type="text" nam ...

随机推荐

  1. MySQL 语句遇到关键字

    MySQL中,如果拿一个关键字做列名写在一个SQL语句中. 需要加 ``(1上面那个)包裹起来.不然会报解析字符串错误. select session from wireless limit 10; ...

  2. java高新技术-泛型

    1.体验泛型 泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时去除掉"类型"信息,使程序运行小效率不受影响 ...

  3. SPOJ GSS3 Can you answer these queries III

    Time Limit: 330MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Description You are g ...

  4. POJ3154 Graveyard

    Graveyard Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1654   Accepted: 840   Specia ...

  5. bzoj4419[SHOI2013]发微博

    题意:给你一个初始没有边,点权均为0的无向图,三种操作:加边,删边,选择一个点将当前与之相邻的点(不包括自身)的点权+1,询问最后所有点的点权. 据说正解是set维护每个人的朋友,然后考虑每次加边.删 ...

  6. SQLite遇到的关于x64、x86问题

    初次使用SQLite遇到了莫名其妙的问题: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyTok ...

  7. 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Final

    Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...

  8. 常用RSS订阅地址

    随着Google Reader关门大吉,转战鲜果网了,RSS订阅地址经过几次折腾,丢的没剩几个了,写个文章记录一下吧,随时补充. --PS-- ,微信.微博之类的是社交平台,不能很好的梳理知识,一直用 ...

  9. SQL数据操作和查询

    1.Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表. CREATE TABLE 表名 AS SELECT语句,例如: CREATE TABLE INFOS1 AS SELECT  ...

  10. POJ 2796 Feel Good(单调栈)

    传送门 Description Bill is developing a new mathematical theory for human emotions. His recent investig ...