《jQuery基础教程》第四版第七章课后练习——使用插件

  1. 把幻灯片的切换周期延长到1.5秒,把动画效果修改为下一张幻灯片淡入之前,前一张幻灯片淡出。请参考Cycle插件的文档,找到实现上述功能的选项。
  2. 设置名为cyclePaused的cookie,将它的有效期设置为30天。
  3. 限制书名区域,每次缩放只允许以10像素为单位。
  4. 修改滑动条动画,让幻灯片切换时,滑块从当前位置平滑地移动到下一个位置。
  5. 不像以前那样循环播放幻灯片,而是在播放完最后一张幻灯片后停止。当幻灯片停止播放时,也禁用相应的按钮和滑动条。
  6. 创建一个新的jQuery UI主题,让部件背景为浅蓝色,文本为深蓝色,并将这个自定义主题应用到我们的实例文档上。
  7. 修改mobile.html中的HTML代码,让列表视图根据书名的第一个字母分隔开来。可以参考jQuery Mobile官方中关于data-role=”list-divider“的介绍。
    1~4修改的代码如下:
$(document).ready(function() {
    //题1 把幻灯片的切换周期延长到1.5秒,把动画效果修改为下一张幻灯片淡入之前,前一张幻灯片淡出。请参考Cycle插件的文档,找到实现上述功能的选项。
    var $books = $('#books').cycle({
    //timeout: 2000,
    timeout: 1500,//将timeout设置成1500
    fx: 'fade',// name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
    speed: 200,
    pause: true,
    before: function() {
      $('#slider').slider('value', $('#books li').index(this));
    }
  });

    //题2 设置名为cyclePaused的cookie,将它的有效期设置为30
    $.cookie('cyclePaused', 'illuSioN4ng', { expires: 30 });
    alert($.cookie('cyclePaused'));//检查设置的cookie值是否成功(页面需要点击resume按钮,重置cookie,恢复轮播)

    $books.find('.title').resizable({
    //handles: 's'

    //题3 限制书名区域,每次缩放只允许以10像素为单位。
    grid: [10, 10]
  });
    $('<div id="slider"></div>').slider({
    min: 0,
    max: $('#books li').length - 1,

    //题4 修改滑动条动画,让幻灯片切换时,滑块从当前位置平滑地移动到下一个位置。
    animate: true,//Boolean: 当设置为 true时, 滑动手柄将以默认的持续时间执行动画。String: 速度的名称, 比如 "fast" 或 "slow"。Number: 动画持续时间, 以毫秒为单位。
    slide: function(event, ui) {
      $books.cycle(ui.value);
    }
  }).appendTo($controls);
});

题5修改的代码如下:

$(document).ready(function() {
    var stop_flag = 0;//停止标志符,0为正常轮播,1为停止
    var $books = $('#books').cycle({
        timeout: 1500,//将timeout设置成1500
        fx: 'fade',// name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
        speed: 200,
        nowrap: true,// true to prevent slideshow from wrapping
        pause: true,
        before: function() {
          $('#slider').slider('value', $('#books li').index(this));
        },

        end: function(){
          $('button').click(function(event){
            $(this).effect('shake', {
              distance: 5
            });
          });
          stop_flag = 1;
        }//end回掉函数可以和autostop或者nowrap配合使用
      });
  if ( $.cookie('cyclePaused') ) {
    $books.cycle('pause');
  }
  var $controls = $('<div id="books-controls"></div>').insertAfter($books);
  $('<button>Pause</button>').click(function(event) {
    if(stop_flag === 0){//判断停止标识符
      event.preventDefault();
      $books.cycle('pause');
      $.cookie('cyclePaused', 'y');
    }else {//禁用按钮
      $(this).effect('shake', {
        distance: 10
      });
    }
  }).button({
    icons: {primary: 'ui-icon-pause'}
  }).appendTo($controls);
  $('<button>Resume</button>').click(function(event) {
    if(stop_flag === 0){//判断停止标识符
      event.preventDefault();
      var $paused = $('ul:paused');
      if ($paused.length) {
        $paused.cycle('resume');
        $.cookie('cyclePaused', null);
      }else {//禁用按钮
        $(this).effect('shake', {
          distance: 10
        });
      }
    }
  }).button({
    icons: {primary: 'ui-icon-play'}
  }).appendTo($controls);

  $('<div id="slider"></div>').slider({
    min: 0,
    max: $('#books li').length - 1,

    animate: true,//Boolean: 当设置为 true时, 滑动手柄将以默认的持续时间执行动画。String: 速度的名称, 比如 "fast" 或 "slow"。Number: 动画持续时间, 以毫秒为单位。
    slide: function(event, ui) {
      if(stop_flag === 0){//判断停止标识符
        $books.cycle(ui.value);
      }else {//禁用滑动条
        $(this).effect('shake', {
          distance: 10
        });
      }
    }
  }).appendTo($controls);
});

效果请点击

题6 需要先到http://jqueryui.com/themeroller/上制作样式并下载,然后应用相应的文件

题7 的代码如下:
方法一:

 <div data-role="content">
    <ul data-role="listview" data-inset="true" data-filter="true" data-autodividers="true">
      <li><a href="#drupal-7">Drupal 7 Development by Example</a></li>
      <li><a href="#jq-game">jQuery Game Development Essentials</a></li>
      <li><a href="#jqmobile-cookbook">jQuery Mobile Cookbook</a></li>
      <li><a href="#jquery-designers">jQuery for Designers</a></li>
      <li><a href="#jquery-hotshot">jQuery Hotshot</a></li>
      <li><a href="#jqui-cookbook">jQuery UI Cookbook</a></li>
      <li><a href="#mobile-apps">Creating Mobile Apps with jQuery Mobile</a></li>
      <li><a href="wp-mobile-apps.html">WordPress Mobile Applications with PhoneGap</a></li>
    </ul>
  </div>

效果请点击
方法二:

 <div data-role="content">
    <ul data-role="listview" data-inset="true" data-filter="true">
      <li data-role="list-divider">D</li>
      <li><a href="#drupal-7">Drupal 7 Development by Example</a></li>
      <li data-role="list-divider">J</li>
      <li><a href="#jq-game">jQuery Game Development Essentials</a></li>
      <li><a href="#jqmobile-cookbook">jQuery Mobile Cookbook</a></li>
      <li><a href="#jquery-designers">jQuery for Designers</a></li>
      <li><a href="#jquery-hotshot">jQuery Hotshot</a></li>
      <li><a href="#jqui-cookbook">jQuery UI Cookbook</a></li>
      <li data-role="list-divider">C</li>
      <li><a href="#mobile-apps">Creating Mobile Apps with jQuery Mobile</a></li>
      <li data-role="list-divider">W</li>
      <li><a href="wp-mobile-apps.html">WordPress Mobile Applications with PhoneGap</a></li>
    </ul>
  </div>

效果请点击

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(答案见下载资源) 上机任务1 用chrome打开dom.sample2.html页面, 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (1)查找id号为tigerLily的元素 (2)查找拥有类myList的元素 (3)查找所有的input元素 (4)查找所有img元素和tr元素 (5)查找id号为coffeePot和id号为someDiv的元素 (6)选择具有id属性的所有元素 (7)选择具有id属性的input元素 (8)选择其value属性等于A的元素 (9)选择其value属性等于A或等于C的元素 (10)选择其title属性值中含有dog的img元素 (11)选择其href属性值以http开头的a元素 (12)选择div元素内嵌套的span元素 上机任务2 用chrome打开dom.sample2.html页面, 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (13)选择元素li,该元素作为拥有myList类的ul元素的直接子元素 (14)选择id号为radioA的input元素后面的第一个input兄弟元素 (15)选择id号为radioA的input元素后面的所有input兄弟元素 (16)选择dom sample页面中第3个tr元素 (17)选择其type属性值checkbox且索引为偶数的input元素 (18)选择非最后一行的tr元素 (19)选择所有的checkbox元素 (20)选择所有被选中的表单元素 (21)选择含有1972的td元素 (22)选择包含有sapn元素的div元素 (23)选择表格中每行的第一个单元格和最后一个单元格 (24)选择表格中第3行,标题行不算(要求用nth-child()过滤器) 上机任务3 用chrome打开dom.sample2.html页面,该页面中内嵌有几个CSS类:.red .green .blue .yellow .thickBorder .seeThrough 在chrome的控制台中输入jQuery代码并执行,完成以下选择动作: (1)将拥有alt属性的倒数第二个图片元素应用yellow类 (2)将第一个checkbox表单元素应用.green样式 (3)求id值为checkbox3的元素在所有表单元素里的顺序号 (4)用一条链式语句完成:先对所有img元素应用seeThrough样式,再为所有img元素和tr元素应用yellow样式 (5)用filter方法实现:选择单元格内容为Java或Smalltalk的单元格 (6)取图片集中的第2,3,4张图片 (7)用has方法实现:选择那些包含有ul元素的li元素 (8)将tbody每个单元格里的文字设为:我爱jQuery (9)查找form元素的后代元素中标签为label的元素 (10)查找表单元素中是否有id值为checkbox5的元素 提示: 为某dom元素应用某css样式可以使用jQuery中的addClass方法,例如:将id为tt的div元素应用.bt样式,可用些语句:$("#tt").addClass("color","red");

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值