前言

继续总结过程中学到的新知识,这是第4部分,也是最后一部分。
主要是实现 页面变速展示的 效果

一、创建button按钮

1 HTML结构

<div class="action"><button data-speed="slow">慢速</button>   <!-- 自定义属性 --><button data-speed="normal" class="active">中速</button><button data-speed="fast">快速</button>
</div>

2 设置按钮的一般样式

.actions{position: absolute;top: 0;right: 0;/* border: 1px solid red; */display: flex;flex-direction: column;
}.actions>button{margin: 10px;padding: 8px 10px;background: #ddd;border: none;     /*去除默认按钮的 边框样式*/
}

3 设置被选中按钮的样式

.actions>button.active{box-shadow: 1px 1px 1px rgba(0,0,0,0.8);    /* box-shadow样式*/
}/* .actions>button:focus{outline: none;}        去除默认按钮的 选中边框颜色
*/ 

二、引入jquery

1 安装初始化yarn,用yarn引入jquery依赖

 yarn官网

2 创建.gitignore文件来忽略 node_mldules

 用git status -sb 命令行 查看是否忽略成功

3 强制引入node_mldules里的 单个jquery文件

 用 git add -f node_modules/jquery/dist/jquery.min.js 命令行 强制添加

4 在index.html里 引入jquery

三、用jquery监听绑定按钮并设置速度

1 设置动态改变active的所属

$('.actions').on('click', 'button', function(e){let $button = $(e.currentTarget)      //当前指向元素buttonlet speed = $button.attr('data-speed')  //获取其属性值console.log(speed)$button.addClass('active')       //增加类.siblings('.active').removeClass('active') //去除兄弟元素类
......
})

2 实现点击变速按钮后,真的也改变展示速度

因为setInterval只会读取一次 延迟时间的值,所以不能实现改变展示速度;
这时候,我们可以用 SetTimeOut()来实现(通过递归)

var duration = 20function writeCode(prefix,code,fn){let container = document.querySelector('#code')let styleTag = document.querySelector('#styleTag')let n = 0// let id = setInterval(() => {setTimeout(function run(){n+=1;container.innerHTML = code.substring(0,n)styleTag.innerHTML = code.substring(0,n)container.scrollTop = container.scrollHeightif(n < code.length){setTimeout(run, duration)    //再次递归调用setTimeout}else{fn && fn.call()}}, duration)}

3 通过点击按钮,就改变 duration的值,就可以实现展示速度变化

$('.actions').on('click', 'button', function(e){let $button = $(e.currentTarget) // buttonlet speed = $button.attr('data-speed')console.log(speed)$button.addClass('active').siblings('.active').removeClass('active')switch (speed){case 'slow':duration = 100breakcase 'normal':duration = 50breakcase 'fast':duration = 10break}})function writeCode(prefix,code,fn){let container = document.querySelector('#code')let styleTag = document.querySelector('#styleTag')let n = 0// let id = setInterval(() => {setTimeout(function run(){n+=1;container.innerHTML = code.substring(0,n)styleTag.innerHTML = code.substring(0,n)container.scrollTop = container.scrollHeightif(n < code.length){setTimeout(run, duration)}else{fn && fn.call()}}, duration)}

四 Reference

  1 data开头的属性;
  2 box-shadow介绍;
  3 yarn官网;
  4 jQuery 中文文档;

转载于:https://www.cnblogs.com/ygming/p/8419703.html

画一个皮卡丘项目小结(4)相关推荐

  1. 怎么用python画一个皮卡丘,用python画皮卡丘的代码

    python皮卡丘编程代码 import turtledef getPosition(x, y): (x) (y) print(x, y)class Pikachu: def __init__(sel ...

  2. java皮卡丘代码_用css以写代码形式画一个皮卡丘

    html5 formData上传 针对app端 function uploadFile() { if ((document.getElementById("file").files ...

  3. html5做一个皮卡丘,画一只会动的皮卡丘(上)

    实现的皮卡丘样式以下图: 本篇内容List: tip1--全局样式初始化,配置 tip2--实现鼻子 tip3--实现眼睛 tip4--实现脸颊 tip5--嘴巴实现 1.先进行页面总体的样式配置 这 ...

  4. python画卡通皮卡丘_实现童年Pokémon,教你用Python画一只属于自己的皮卡丘

    原标题:实现童年Pokémon,教你用Python画一只属于自己的皮卡丘 大数据文摘出品 作者:李雷.蒋宝尚 还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗? 还记得和小伙伴拿着精灵球,一起召唤小精灵 ...

  5. html5做一个皮卡丘,用css实现一个皮卡丘

    前言 当我学完cs能还有都这房搞名移页通带近啥是点是三子清s和js后,冒出来一个想法.自己去实现一个可爱的卡通人物.于是我就去codepen找素材,最终选择了皮卡丘,支器事的后功发久这含层请间业在屏有 ...

  6. 用python画动态皮卡丘_如何利用python绘制可爱皮卡丘?

    这个非常简单,主要用到turtle这个模块,一个绘图函数库,可以快速绘制平面二维图形,下面我简单介绍一下实现过程,主要分为鼻子.眼睛.脸.嘴巴这4个部分,实验环境win10+python3.6+pyc ...

  7. python画只皮卡丘

    今天没事敲了一下python发现好久都没用过海龟画图了,今个画了一只简单版的皮卡丘 下附代码: #接下来请欣赏像素风皮卡丘 import turtle as a def wz(x,y):#设置一个以海 ...

  8. python 实现一个皮卡丘的动画图

    大家都知道皮卡丘是贼可爱的样子,但是如何用Python来实现这样一个可爱的形象呢,来,先上效果图 实现的代码奉上: 第一个图片的代码: # coding:utf-8 import turtle as ...

  9. turtle画了一个皮卡丘

    效果展示戳这里 代码 from turtle import * import numpy as npreset() setup(500,500) screensize(bg='white') pens ...

最新文章

  1. Android应用系列:完美运行GIF格式的ImageView(附源码)
  2. python sys.path.append(),sys.path.insert()用法
  3. [Android] Implementation vs API dependency
  4. 自适应滤波:最小均方误差滤波器(LMS、NLMS)
  5. python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
  6. 深入浅出MySQL出版了
  7. day04.2-迭代器
  8. python模块-logging的智商上限
  9. c++ 等待子线程结束_进程和线程
  10. GoC语言学习(C/C++程序设计语言入门)
  11. 上海交大教授:何援军——包围盒(包容体/包围盒子)
  12. Linux加入Windows域
  13. 安卓平板硬件测试软件,《安兔兔硬件检测》:必备的系统工具
  14. 最小生成树-Borůvka算法
  15. 用 JavaScript 编写日历
  16. 【安全】【信息搜集】Google Hacking
  17. 虚拟现实房产展示系统提前预见未来装修效果
  18. [PsTools]psexec.exe使用范例-执行远程电脑程序(exe、bat等)
  19. Delphi2010强化的反射(续)
  20. 自然语言处理(NLP):竞赛平台【国际、国内】

热门文章

  1. python快速编程入门课后题答案-《Python编程:从入门到实践》第五章 if语句 习题答案...
  2. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...
  3. python写的游戏怎么给别人玩-用python写游戏脚本原来这么简单
  4. python课程推荐-课程推荐:四天人工智能 python入门体验课
  5. python画散点图程序-Python散点图与折线图绘制过程解析
  6. 用requests获取网页源代码 python-手把手教你利用爬虫爬网页(Python代码)
  7. 一个完整的python项目源码-一个Python开源项目-哈勃沙箱源码剖析(下)
  8. python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?
  9. python数字类型-Python数字类型介绍
  10. python开发能做什么-python能做什么?是什么?