博客列表 >0329javascript入门与实战(实战:明星相册、实战:mini计算器)18:00

0329javascript入门与实战(实战:明星相册、实战:mini计算器)18:00

丝丝心动的博客
丝丝心动的博客原创
2018年04月02日 18:55:14803浏览

通过学习js,我了解到js是客户端的脚本语言,它是直接写到当前的html页面中执行的,不需要服务器环境支持,html写结构,css写样式,js写元素行为与用户交互的,使页面更加的智能,与css一样,js也有三种方式引入到当前的html文档中等知识

0329javascript入门与实战(实战:明星相册)代码:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>实战:明星相册</title>
 <style type="text/css">
  .box{
   width: 700px;
   height: 650px;
   background-color: #efefef;
   border: 1px solid lightgray;
   margin:20px auto;
   text-align: center;
   color: #363636;
   box-shadow: 2px 2px 2px #999; 
  }
  .box ul{
   margin: 0;
   padding: 0;
   /*要让浮动元素包得住*/
   overflow:hidden;
  }
  .box ul li{
   /*清除列表样式*/
   list-style-type: none;
   /*左浮动*/
   float: left;
   margin-left:60px;
   /*margin: auto;*/
   background-color: skyblue;  
  }
  .box ul li a{
   /*将a转为块元素,并设置为li的宽高,这样可以使整个li可以被点击*/
   display: block;
   width: 100px;
   height: 40px;
            /*把行高定40px,实现垂直居中*/
   line-height: 40px;
   color: white;
   /*把a标签的下划线去掉*/
   text-decoration-line: none; 
  }
  .box ul li a:hover {
   /*把a标签的文本当鼠标移上字体变1.2em*/
   font-size: 1.2em;
   /*鼠标移上背景变橙色*/
   background-color: coral;
  }
  .box .pic{
   width: 450px;
   height: 400px;
   border: 1px solid lightgray;
   /*消除图片下面的4px的空白(bug),要在父元素上加上行高*/
   line-height: 1px;
   /*水平居中*/
   margin: auto;
   margin-top: 50px;  }
  .box .pic img{
   /*设置图片显示大小随父级自适应*/
   width: 100%;
   height: 100%;
  }
  .box .pic img:hover{
   /*border-radius: 50%; */
  } </style>
</head>
<body>
 <div>
  <h2>明星相册</h2>
  <ul>
   <li>
    <a href="../images/lye.jpg" title="《武神赵子龙》..." onclick="changePic(this); return false;">林允儿</a>
   </li>
            <li>
    <a href="../images/jt.jpg" title="《战国》,《赌神3》,《金刚2》,《大唐荣耀》..." onclick="changePic(this); return false;">景甜</a>
   </li>
            <li>
    <a href="../images/lyf4.jpg" title="《天龙八部》,《神雕侠侣》,《倩女幽魂》,《猫妖传》..." onclick="changePic(this); return false;">刘亦菲</a>
   </li>
            <li>
    <a href="../images/zly.png" title="《楚乔传》,《花千骨》,《陆贞传奇》..." onclick="changePic(this); return false;">赵丽颖</a>
   </li>
  </ul>
  <div>
   <img src="../images/zwt.png" alt="" id="img">
  </div>
  <p id="info"></p>
 </div>
    <script type="text/javascript">
     function changePic(pic){
      //1.获取到要替换的明星图片与简介信息
      var picUrl = pic.href
      var picInfo = pic.title
      // 获取标签中的文本(或者可以获取html的文本)
      var picName = pic.innerHTML
            //2.获取到页面中,要被替换掉的图像元素和文本对象
      var img = document.getElementById('img')
      var p = document.getElementById('info')      //3. 将对应的图像与信息占位符进行替换
      img.src = picUrl
      // 替换标签中的内容
      p.innerHTML = picInfo
      // 在文本前加名字
      p.innerHTML = picName +':'+ picInfo
            // innerHTML不光支持纯文本,还支持html标签,注意:添加<apan>然后添加样式的方式:style="color:coral"
      p.innerHTML = '<span style="color:coral">'+picName+':'+picInfo+'</span>'
     }
    </script></body>
</html>

0329javascript入门与实战(实战:明星相册)效果:

1.png


0329javascript入门与实战(实战:mini计算器)代码:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>实战:mini计算器</title>
 <style type="text/css">
  .box{
   width: 500px;
   height: 200px;
   background-color: #efefef;
   border: 1px solid lightgray;
   margin:20px auto;
   text-align: center;
   color: #363636;
   box-shadow: 2px 2px 2px #999; 
  }
  table{
   /*居中*/
   margin: center;
   /*参考样式*/
   /*border: 1px solid red;*/
  }
  td{
   /*参考样式*/
   /*border: 1px solid blue;*/
   width: 100px;
   height: 30px;
   padding: 5px 10px;
  }
  input,select{
   width: 100%;
   height: 100%;
   /*去边框*/
   border: none;
   /*居中*/
   text-align: center;
  }
  button{
   width: 100%;
   height: 100%;
   /*去边框*/
   border: none;
   background-color: skyblue;
   color: white;  }
  button:hover{
   background-color:coral;
   width: 105%;
   height:105%;
   /*鼠标移上时变小手*/
   cursor: pointer;  
  }
 </style>
</head>
<body>
 <div>
  <h2>mini计算器</h2>
  <form>
   <table>
    <tr>
     <td><input type="text" name="opt1" placeholder="操作数1"></td>
     <td>
      <select name="option">
       <option value="null">请选择操作</option>
       <option value="add">+</option>
       <option value="sub">-</option>
       <option value="mul">*</option>
       <option value="div">/</option>
      </select>
     </td>
     <td><input type="text" name="opt2" placeholder="操作数2"></td>
     <td><button type="button">计算</button></td>
    </tr>
    <tr>
     <td colspan="2"><h3>结果:</h3></td>
     <td colspan="2"><h3 id="placeholder"></h3></td>
    </tr>
   </table>
  </form>
  
 </div>
 <script type="text/javascript">
  //1.获取操作数,按钮与结果占位符
  var opt1 = document.getElementsByName('opt1')[0]
  var opt2 = document.getElementsByName('opt2')[0]
  var opt = document.getElementsByName('option')[0]
  var btn = document.getElementsByTagName('button')[0]
  var placeholder = document.getElementById('placeholder')
  //2.给按钮添加事件,执行计算操作
  btn.onclick =function(){
   // 验证是否能获取opt1.value
   // alert(opt1.value)
   // 验证opt的值是否为空
   if(opt1.value.length==0){
    // opt为空时给提示
    alert('第一个操作数不能为空')
    // 把焦点给opt1
    opt1.focus()
    return false
   }
             // 判断opt1的值是否是非法数据(非数字),用isNaN()函数来判断
   else if(isNaN(opt1.value)){
    alert('非法数据:第一个操作数必须是数字')
   }
   // 第二个opt2与第一个一样的判断验证
   else if(opt2.value.length==0){
    // opt为空时给提示
    alert('第二个操作数不能为空')
    // 把焦点给opt2
    opt2.focus()
    return false
   }
             // 判断opt2的值是否是非法数据(非数字),用isNaN()函数来判断
   else if(isNaN(opt2.value)){
    alert('非法数据:第二个操作数必须是数字')
   }
   // 检测完成后要获取数据
   else{
    // 要用parseFloat()函数把输入的字符串转换为数字
    var date1 = parseFloat(opt1.value)
    var date2 = parseFloat(opt2.value)
   }
            // alert(date1+date2)
            // 操作符检测
            var option =opt.value
            // 定义变量temp保存临时计算结果
            var temp =0
            // 定义变量flag保存当前的操作(+ - * / ),计算结果人性化输出时用
            var flag =''
            switch (option){
             // 操作符检测
             case 'null':
                  alert('请选择操作')
                  opt.focus()
                  return false             case 'add' :
                 flag ='+'
                 temp =date1+date2
                 break             case 'sub' :
                 flag ='-'
                 temp =date1-date2
                 break
             case 'mul' :
                 flag ='*'
                 temp =date1*date2
                 break             case 'div' :
                 flag ='/'
                 // 除法要做判断:除数不能为0
                 if (date2==0) {
                  alert('除数不能为0')
                  opt2.focus()
                  return false
                 } else {
                  temp = date1 / date2                 }
                 break
            }
           
            // 计算
            // placeholder.innerHTML = '<span style="color:coral">' +date1 +' '+flag+' '+date2 +'='+temp +'</span>'
            // 代码优化
            var str ='<span style="color:coral">'
            // str =str +date1 +' '+flag+' '+date2 +'='+temp
            str += date1 +' '+flag+' '+date2 +'='+temp
            str +='</span>'
            placeholder.innerHTML = str
  }
 </script>
</body>
</html>

0329javascript入门与实战(实战:mini计算器)效果:

2.png


0329javascript入门与实战(实战:mini计算器)手写代码:

4.JPG

5.JPG


6.JPG


7.JPG


总结:通过对js 的学习,我认为其实js也不是很难,他跟c#、java等语言有很大的相似,变量的声明,获取,调用,更新,输出等,函数的调用,应算符的使用,循环语句的使用,条件语句的使用,等知识。通过课堂学习,我现在回写一些基础的js语句,比如现在在写的计算器,还有一些需要完善,后面会发博文,如下图:

3.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议