Day6

模仿时钟:

仿短信发送倒计时:
<!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" xml:lang="en">

<head>

  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title></title>

</head>

<body>

  <input type="text" />

  <button id="btn">点击发送短信</button>

</body>

</html>

<script>

  var btn = document.getElementById("btn");

  var count = 5;

  var timer = null;//把定时器的名字暂时以null代替以后,然后用于对变量重新赋值声明进行对其关闭操作.

  btn.onclick = function(){

  clearInterval(timer);//每点击一次清除上一次已生效的点击事件重新执行 (避免多次点击)

  this.disabled = true;//打开不可点击

  var that = this;  //把指向当前事件对象指向声明变量名that上.

  timer = setInterval(sendMessage,1000);

  function sendMessage(){

    count--;

  if (count >= 1)

  {

  that.innerHTML = "还剩余"+ count +"秒";

  }else{

  that.innerHTML = "点击重新发送短信";

  that.disabled = false;
  
  clearInterval(timer); //每次执行完以后必须关闭之前的定时器

  count = 5;//重新赋值

      }

    }

  }

</script>

PS:

  不可点击:obj.disabled = disabled(或false) 的用法

 

arguments.callee :

  返回正在执行的函数(代表函数本身).在函数体内使用.一般用于函数递归调用时.

  function fn(){console.log(arguments.callee);}

  这里的arguments.callee  就代表了 fn();

运算符:

  逻辑运算符:

  &&  ||  !

    && : a && b : 解读: a为真则返回b,a为假则返回a本身.

    || :  a || b : 解读: a为真则返回a本身,a为假则返回b.

    !   :逻辑非.

先后顺序优先级:

  1:  ( )     

  2: ! - ++ --

  3: * / %

  4: +-

  5:< > <= >=

  6:==  !=  ===  !==

  7:&&

  8:||

  9:三元运算符

  10:=  +=  /=  *=  %= -=

 

额外内容:

  5秒跳转页面;

  window.location.href = http://

 

  setInterval和setTimeout 区别:

  setIterval :几秒后重复执行方法,

  setTimeout : 几秒过后执行一次方法.

 

转换为字符串:

   1. + “”       2+ “”  =  2    2+ab   =  2ab 

   2. String()    转换为字符串

   3. toString(基数)  ;    基数就是进制  

   var txt = 10;

   txt.toString(2)       二进制      1010

 

获取字符位置方法:

     charAt,获取相应位置字符(参数: 字符位置)

     charCodeAt获取相应位置字符unicode编码(参数: 字符位置)

     var txt = abcedf;     

     比如,  txt.charAt(4);    索引号一定是从0开始    返回的结果是 d

     我们根据我们输入的 位数 返回相应的 字符 。

     unicode编码  是我们字符的字符的唯一表示 。

 

小米页面自动上下拉动:

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

    <style>

        .xiaomi {

            width: 512px;

            height: 512px;

            border: 1px solid #f00;

            margin: 40px auto;

            overflow: hidden;

            position: relative;

        }

        .xiaomi span {

            position: absolute;

            left: 0;

            width: 100%;

            height: 256px;

            cursor: pointer;

        }

        .up {

            top: 0;

        }

        .down {

            bottom: 0;

        }

        #pic{

            position: absolute;

            top:  0px;

            left: 0;

        }

    </style>

</head>

<body>

<div class="xiaomi" id="box">

    <img id="pic" src="mi.png" alt=""/>

    <span class="up"></span>

    <span class="down"></span>

</div>

</body>

</html>

<script>

    function $(id){ return document.getElementById(id);}

    var boxs = $("box").children;

        var num = 0;

        var timer = null;

        boxs[1].onmouseover = function(){

        clearInterval(timer);

        timer = setInterval(span2,10);

        function span2(){

            num += 3;

            if (num <= 0)

            {

                $("pic").style.top = num + "px";

            }else{

                 clearInterval(timer);

            }

        }

    }   

    boxs[2].onmouseover = function(){

        clearInterval(timer);

        timer = setInterval(span1,10);

        function span1(){

            num -= 3;

            if (num >= -958)

            {

                $("pic").style.top = num + "px";

            }else{

                 clearInterval(timer);

            }

        }

    }

        $("pic").parentNode.onmouseout = function(){

             clearInterval(timer);

        }

</script>

关键核心:

    定义坐标位置初始值为0;

    定义定时器变量名作为关闭定时器的控制方式.

 

    1 当鼠标经过发生事件时,应先清除上一次定时器执行过或正在执行的方法,(关闭定时器,清空函数),

    2 计算图片的高度来确定不越界,不出界图片盒子外的值.

    比如盒子宽高各为512px, 图片的长度为1470,那么就用 1470 - 512 = 958(下拉到盒子的最底部停止继续下拉,做到不越界,不出界)

code:

  

boxs[1].onmouseoverer = function(){

        clearInterval(timer);

        timer = setInterval(span2,10);

        function span2(){

            num += 3;

            if (num <= 0)

            {

                $("pic").style.top = num + "px";

            }else{

                 clearInterval(timer);

            }

        }

    }   

    boxs[2].onmouseover = function(){

        clearInterval(timer);

        timer = setInterval(span1,10);

        function span1(){

            num -= 3;

            if (num >= -958)

            {

                $("pic").style.top = num + "px";

            }else{

                 clearInterval(timer);

            }

        }

    }

最后移除盒子外则关闭定时器:

    以达到定在某个位置的做法.

    code:

   $("pic").parentNode.onmouseout = function(){

               clearInterval(timer);

          }
时间: 2024-11-03 03:46:29

Day6的相关文章

hsdf -- 6.21 -- day6

差点忘写总结-- 这么快就到day6了啊 感觉前面写的总结都是苟屁,跟没有有什么区别-- 今天认真总结一下 最大的失误就是全程肝a题,最后还挂了-- 感觉今天方向偏了,由进行一次测试到仅仅是想要尽可能多的搞点什么事情-- 本末倒置了吧-- 然后就是没对拍--这个就不说了,py运行其他程序要学习一个-- 然后--也就这样了吧 发现猜性质不能仅仅大胆猜想,倒是不用验证,不过至少对拍一下-- 恩然后现场搞事情需要先写好暴力分,以前的习惯挺好的现在怎么忘了-- 是因为题太奇怪还是我太废了-- 感觉突然失

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

python_way day6 反射,正则 模块

python_way day6 反射 正则 模块 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什么去可以找到这些模块的位置哪? 那就是环境变量! 如何查看当前的环境变量?a = sys.pathprint(a)['D:\\资料\\python\\oldboy13\\jobs\\day5\\conf', 'D:\\资料\\python\\python35\\lib\\site-packages\\requests-2.10.0-py

day6 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问

python小白-day6 time&datetime模块

time&datetime ?一.time模块 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式:       第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的       第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同 1 2 3 4 5 6 7 8 9 10 11 12 import time print('clock():',time.cl

常州培训 day6

第一题: 题目大意: 给出一个N*N的矩阵,矩阵元素均为0或1.定义矩阵权值为sum(F[i][j]*F[j][i]); 给出K个操作: 询问矩阵的权值mod 2. 将矩阵的某一行元素取反(0变成1,1变成0). 将矩阵的某一列元素取反. N<=1000,K<=10^5 解题过程: 一开始看到K的范围有点大,肯定不能模拟,想到前几天N皇后那题大神讲了可以用60位压成一个long long优化,于是就傻乎乎的把每一行每一列都60位压缩.然后各种麻烦的操作,写到最后发现写不下去了,顿时心情糟透了,

Python之路Day6

Day6的主要内容是: configparser模块 shutil模块 subprocess模块 处理xml的模块 1.configparser模块 #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Q1mi" """ configparser 练习 """ import configparser # 写一个配置文件 config = configpa

java之day6

String类 package day6; import java.util.Arrays; public class StringTest { public static void main(String[] args) { // == 比较的是两个数据的大小 //基本数据类型的存储区域在栈中,每一个数据都是相互独立存在的 int i = 5; int j = 5; System.out.println(i==j); //数组是引用数据类型, //数组占用两块空间:栈和堆 //栈中存放数组数据

python 基础 day6

本节内容概要: 冒泡算法 反射 模块 正则表达式 冒泡算法: 同之前介绍的两种排序方式一样,冒泡排序也是最简单最基本的排序方法之一.冒泡排序的思想很简单,就是以此比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上. 举例分析说明一下,如下数据: 2 7 4 6 9 1 首先比较最后两个数字,发现1比9小,于是前移 2 7 4 6 1 9 然后比较6和1 2 7 4 1 6 9 继续前移,然后是4和1 2 7 1 4 6 9 7和1比较 2 1 

21天战拖记——Day6:复习阶段性完成!(2014-05-09)

今天上完了英语的最后一堂课,看了一场电影<两个小洛特>:两个长得一模一样的姑娘,由于父母离婚,她们被抓散了.为了争取自己的幸福,她们想出一个大胆的冒险计划:姐姐代替妹妹,妹妹代替姐姐,回到离异的父母身边,由此产生了一连串奇特有趣的故事,经过种种曲折和磨难,她们终于破镜重圆. 这是我学生生涯的最后一堂课了,之后应该不会再上课了,下课后去了西院图书馆,果断复习<随机过程>嘛.今天终于将整个的书本的内容看完了,明天可以看试卷了. 学习<小强升职记(升级版)>记录: "